2011-01-11 3 views
0

나는 RenderPartials를 사용하여 작업해야하는 프로젝트에서 지저분한 MasterPage를 구성하려고했는데, 그 코드는 실제로 읽을 수 없기 때문에 정리했다. 사용자 역할에 따라 주 콘텐츠 데이터가 다른 방식으로 표시됩니다. 사이트가 내가 할 렌더링 할 때MasterPage의 Html.RenderPartial

<asp:ContentPlaceHolder ID="MainContent" runat="server"> 
</asp:ContentPlaceHolder> 

다음 ContentPartialView에서 사용자의 역할을 확인 후 드디어 태그를 사용

<!-- Header --> 
<% Html.RenderPartial("SiteHeaderPartialView"); %> 

<!-- Content --> 
<% Html.RenderPartial("ContentPartialView"); %> 

<!--Footer --> 
<% Html.RenderPartial("SiteFooterPartialView"); %> 

다음 : 내가 이런 짓을 오류 메시지 : "마스터 페이지에서 ContentPlaceHolder 'MainContent'를 찾을 수 없습니다." 그래서, 내 질문에, MasterPage에서 RenderPartials를 사용하고 ASP ContentHolders를 그 안에 넣을 수 있습니까? 왜 그런가요? 마스터 페이지를 재구성하여 깨끗하고보기 좋게 만들 수있는 또 다른 방법이 있습니까? 미리 조언 해 주셔서 감사합니다.

답변

1

asp:ContentPlaceHolder 태그는 마스터 페이지에서 사용해야합니다. 콘텐츠 페이지에서 asp:Content을 사용해야합니다. 그러나 Html.RenderPartial을 사용하면 해당 위치에 부분 ASCX 페이지를 삽입하기 만하면됩니다. 레이아웃을 작성하는 일반적인 방법은 asp:ContentPlaceHolder, asp:Content 태그, Html.RenderPartialHtml.RenderAction/Html.Action 헬퍼입니다.

관련 문제