我试图从一个我必须使用RenderPartials的项目中整理出一个凌乱的MasterPage,因为它的代码真的很难读。根据用户角色的不同,主要内容数据会以某种方式显示。我这样做了:
<!-- Header -->
<% Html.RenderPartial("SiteHeaderPartialView"); %>
<!-- Content -->
<% Html.RenderPartial("ContentPartialView"); %>
<!--Footer -->
<% Html.RenderPartial("SiteFooterPartialView"); %>
然后,在ContentPartialView中,在检查用户的角色之后,我最后使用了标记:
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder> 但当站点呈现时,我收到错误消息:“无法在母版页中找到ContentPlaceHolder 'MainContent‘”。所以,我的问题是,有没有可能在MasterPage中使用RenderPartials并将ASP ContentHolders放在其中?为什么会这样呢?有没有其他方法可以重新组织MasterPage,让它看起来更干净、更具可读性?提前感谢您的建议。
发布于 2011-01-12 15:33:53
母版页中应使用asp:ContentPlaceHolder标记。在内容页面中,您需要使用asp:Content。但是对于Html.RenderPartial,你不能使用它们,它只是在指定的位置插入一个部分的ASCX页面。所以这里有三种常见的布局合成方法:带有asp:Content标签的asp:ContentPlaceHolder,Html.RenderPartial和Html.RenderAction/Html.Action助手。
https://stackoverflow.com/questions/4662401
复制相似问题