sourcecode

Html의 차이점은 무엇입니까?부분(뷰, 모델) 및 Html.MVC2에서 부분 렌더링(뷰, 모델)?

copyscript 2023. 5. 14. 10:58
반응형

Html의 차이점은 무엇입니까?부분(뷰, 모델) 및 Html.MVC2에서 부분 렌더링(뷰, 모델)?

그것이 반환하는 유형과 당신이 그것을 다른 방식으로 부르는 것 외에 물론.

<% 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);
    }
}

유일한 차이점은Partial반환합니다.MvcHtmlString그리고 안으로 전화해야 합니다.<%= %>,반면에.RenderPartial돌아온다void뷰에 직접 렌더링합니다.

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

당신은 전화할 것입니다.Partial생성된 HTML을 페이지에 쓰는 대신 보거나 저장 또는 조작하려는 경우.

Dino Esposito의 훌륭한 설명입니다.

두 방법의 차이는 작고 해롭지 않아 보일 수 있지만, 만약 여러분이 그것을 다루는 방법을 모른다면 여러분을 괴롭힐 수도 있습니다.두 방법의 주요 차이점은 다음과 같습니다.

  • Partial HTML 인코딩 문자열을 반환합니다.
  • RenderPartial응답 출력 스트림에 직접 쓰는 void 메서드입니다.

두 가지 방법의 용도는 약간 다릅니다.

@Html.Partial("_yourPartialView")
@{ Html.RenderPartial("_yourPartialView "); }

사용할 항목은 사용자의 요구 사항에 따라 달라집니다.응답 스트림에 주입되는 문자열을 추가로 조작해야 하는 경우 다음을 사용해야 합니다.Partial그렇지 않은 경우에는 …과 함께.RenderPartial그것은 단지 그것이 개울로 바로 가기 때문에 그것보다 조금 더 빠릅니다.Partial.

결국, 부분 뷰의 사용 사례는 두 진영 중 하나에 해당합니다.첫 번째는 아래와 같이 다양한 독립적인 마크업 조각을 함께 구성하여 뷰를 생성하는 경우입니다.

<body>
    @{ Html.RenderPartial("_Header"); }
    @Html.Partial("_Sidebar")
    <div class="container body-content">
       @RenderBody()
    </div>
    @{ Html.RenderPartial("_Footer"); }
</body>

이 경우에, 당신이 선택한 결정은RenderPartial또는Partial최종 효과는 바뀌지 않습니다.하지만, 왜냐하면RenderPartial속도가 약간 빠릅니다. 사용하는 것이 더 좋습니다.

Html.부분HTML.RenderPartial 영역 확장 메서드는 웹 페이지의 재사용 가능한 부분입니다.RenderPartial의 반환 형식은 void이지만 PartialMvcHtmlString을 반환합니다.Html.RenderAction은 결과를 Html과 달리 응답 스트림(더 효율적이고 빠름)으로 직접 렌더링합니다.액션은 결과와 함께 (조작할 수 있는) 문자열을 반환합니다.

언급URL : https://stackoverflow.com/questions/2729815/what-is-the-difference-if-any-between-html-partialview-model-and-html-rende

반응형