asp.net 부분뷰 - MVC2에서 Html.Partial(view, model)과 Html.RenderPartial(view, model)사이의 차이점은 무엇입니까?




asp.net-mvc-2 (3)

그것이 반환하는 타입과 당신이 그것을 다르게 부른다는 사실 외에도

<% Html.RenderPartial(...); %>
<%= Html.Partial(...) %>  

서로 다르면 왜 다른 하나가 아닌 다른 하나를 부르는 것입니까?
정의 :

// Type: System.Web.Mvc.Html.RenderPartialExtensions
// Assembly: System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// Assembly location: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\System.Web.Mvc.dll

using System.Web.Mvc;

namespace System.Web.Mvc.Html
{
    public static class RenderPartialExtensions
    {
        public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName);
        public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData);
        public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName, object model);

        public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName, object model,
                                     ViewDataDictionary viewData);
    }
}

// Type: System.Web.Mvc.Html.PartialExtensions
// Assembly: System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// Assembly location: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\System.Web.Mvc.dll

using System.Web.Mvc;

namespace System.Web.Mvc.Html
{
    public static class PartialExtensions
    {
        public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName);

        public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName,
                                        ViewDataDictionary viewData);

        public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model);

        public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model,
                                        ViewDataDictionary viewData);
    }
}

Answers

유일한 차이점은 PartialMvcHtmlString 반환하고 <%= %> 내부에서 호출해야하지만 RenderPartialvoid 반환하고 뷰에 직접 렌더링한다는 것입니다.

소스 코드 를 살펴보면 둘 다 동일한 내부 메소드를 호출하여 렌더링 할 StringWriter를 전달한다는 것을 알 수 있습니다.

생성 된 HTML을 페이지에 쓰는 대신보기, 저장 또는 조작하려는 경우 Partial 을 호출합니다.


HTML.RenderPartial은 다른 헬퍼 메소드처럼 HTML 마크 업을 반환하지 않습니다. 대신에이 메서드는 응답 스트림에 직접 내용을 씁니다. 따라서 개발자는 세미콜론을 사용하여 C #의 전체 행처럼 호출해야합니다. 이것은 렌더링 된 HTML을 부분 뷰에서 버퍼링하는 것보다 약간 효과적입니다. 어쨌든 응답 스트림에 기록되기 때문입니다.


VS 2010은 MVC 2와 함께 제공되지만 적절한 .NET Framework의 일부는 아닙니다. 즉, .NET Framework 4 재배포 가능 패키지를 다운로드하면 MVC 2 런타임이 포함되지 않습니다.

그러나 MVC는 bin 배포가 가능하므로 괜찮습니다. 응용 프로그램을 .NET 3.5 SP1 또는 .NET 4 서버에 배포하면 System.Web.Mvc.dll이 / bin 폴더로 복사되고 모든 것이 예상대로 실행됩니다. MVC는 Medium Trust에서 잘 실행됩니다.

서버 전체를 설치하려면 here 에서 AspNetMVC2_VS2008.exe 를 다운로드하고 .exe.zip 바꾸고 mvcruntime 하위 폴더에서 AspNetMVC2.msi 파일을 찾으십시오.

그런 다음 실행해야합니다.

msiexec /i AspNetMVC2.msi /l*v .\mvc.log MVC_SERVER_INSTALL="YES"






asp.net asp.net-mvc-2