답변:
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)
@Html.Partial("MyView")
대 를 읽어야합니다 .@{Html.RenderPartial("MyView");}
RenderPage
있습니까? 특정 쿼리 매개 변수를 지정하여 다른 페이지를 중첩하고 싶습니다. 그러면 해당 페이지의 데이터를 필터링하고 자체 레이아웃을 제거합니다.
나는 선호한다
@RenderPage("_LayoutHeader.cshtml")
위에
@{ Html.RenderPartial("_LayoutHeader"); }
구문이 더 쉽고 읽기 쉽기 때문입니다. 그 외에는 기능적으로 현명한 차이가없는 것 같습니다.
편집 : RenderPartial의 한 가지 장점은 전체 경로 또는 파일 확장명을 지정할 필요가 없다는 것입니다. 그러면 자동으로 공통 위치를 검색합니다.
RenderPage
구문 때문에 동의 합니다.
RenderPartial 방법은 대부분의 다른 헬퍼 메소드와 같은 HTML 마크 업을 반환하지 않습니다. 대신 응답 스트림에 콘텐츠를 직접 작성하므로 세미콜론을 사용하여 전체 C # 줄처럼 호출해야합니다.
어쨌든 응답 스트림에 기록되므로 부분보기에서 렌더링 된 HTML을 버퍼링하는 것보다 약간 더 효율적입니다. 보다 일관된 구문을 선호하는 경우 Html.Partial 메서드를 사용할 수 있습니다.이 메서드는 RenderPartial 메서드 와 정확히 동일 하지만 HTML 조각을 반환하며 @ Html.Partial ( "Product", p)로 사용할 수 있습니다.
@RenderPages()
위의 내용은 ASP.NET MVC에서 작동하지 않습니다. 웹 페이지에서만 작동합니다.
@Html.Partial("_Footer")
ASP.NET MVC에서 위의 코드를 사용해야합니다.