하위 템플릿을 렌더링하는 적절한 방법은 무엇입니까?면도기 : @ Html.Partial() vs @RenderPage()
그 차이점은 무엇입니까? 둘 다 나를 위해 일하는 것 같습니다.
그리고 @Html.RenderPartial()
은 왜 더 이상 작동하지 않습니까?
하위 템플릿을 렌더링하는 적절한 방법은 무엇입니까?면도기 : @ Html.Partial() vs @RenderPage()
그 차이점은 무엇입니까? 둘 다 나를 위해 일하는 것 같습니다.
그리고 @Html.RenderPartial()
은 왜 더 이상 작동하지 않습니까?
Html.Partial("MyView")
"MyView"보기를 MvcHtmlString
으로 렌더링합니다. 조회 조회에 대한 표준 규칙 (즉, 현재 디렉토리를 확인한 다음 Shared
디렉토리를 확인)을 따릅니다.
Html.RenderPartial("MyView")
응답 스트림에 출력을 직접 쓰는 점을 제외하면 Html.Partial()
과 동일합니다. 뷰 내용이 메모리에 버퍼링되지 않기 때문에보다 효율적입니다. 그러나 메서드에서 아무런 결과도 반환하지 않으므로 @Html.RenderPartial("MyView")
이 작동하지 않습니다. 대신 코드 블록 (@{Html.RenderPartial("MyView");}
)으로 호출을 래핑해야합니다.
RenderPage("MyView.cshtml")
는 Html.RenderPartial()
같은 응답 스트림에 직접 (경로와 파일 이름보다는 뷰 이름에 의해 식별) 지정된 뷰를 렌더링. 당신은 두 번째 매개 변수
RenderPage("MyView.cshtml", MyModel)
내가 선호
@RenderPage("_LayoutHeader.cshtml")
@{ Html.RenderPartial("_LayoutHeader"); }
이상 만 구문이 쉬우 며 더 읽을 수 있기 때문이다. 그 외에도 기능상 현명한 차이점이없는 것 같습니다.
편집 : RenderPartial의 장점 중 하나는 일반적인 장소를 자동으로 검색 할 전체 경로 또는 파일 확장자를 지정할 필요가 없다는 것입니다.
이 답변에 대한 댓글이되어야한다고 생각합니다. 또한 문법 때문에'RenderPage'에 동의합니다. –
대부분의 다른 헬퍼 메소드와 같은 HTML 마크 업을 반환하지 않습니다 RenderPartial 방법으로 그것을 포함하여 당신이보기에 원하는 모델을 제공 할 수 있습니다. 대신 응답 스트림에 직접 내용을 작성하므로 세미콜론을 사용하여 완전한 C# 줄처럼 호출해야합니다.
렌더링 된 HTML을 부분보기에서 버퍼링하는 것보다 약간 더 효율적입니다. 어쨌든 응답 스트림에 기록되기 때문입니다. 좀 더 일관성있는 구문을 선호하는 경우, 당신은 이 RenderPartial 방법과 동일 않는 Html.Partial 방법을 사용하지만, HTML 조각을 반환하고 @ Html.Partial ("제품으로 사용할 수 있습니다 ", p).
부분 뷰를 사용하여 모델을 전달할 수도 있습니다. @ Html.Partial ("MyView", "MyModel");
@RenderPages()
위의 코드는 ASP.NET MVC에서 작동하지 않습니다. 웹 페이지에서만 작동합니다.
@Html.Partial("_Footer")
위의 코드는 ASP.NET MVC에서 사용해야합니다.
@ Html.RenderPartial ("MyView")보다 @ {Html.RenderPartial ("MyView");}의 효율성 향상에 대한 측정 기준이 있습니까? – Faust
당신은 Partial vd RenderPartial을 의미 했습니까? –
@cacho : 내 의견은'@Html.Partial ("MyView")'와'@ {Html.RenderPartial ("MyView");}' – Faust