我试图通过使用RenderPartials从项目中组织一个凌乱的MasterPage,因为它的代码真的不可读。根据用户角色,主要内容数据以某种方式显示。我这样做了:
<!-- Header -->
<% Html.RenderPartial("SiteHeaderPartialView"); %>
<!-- Content -->
<% Html.RenderPartial("ContentPartialView"); %>
<!--Footer -->
<% Html.RenderPartial("SiteFooterPartialView"); %>
然后,在ContentPartialView中,在检查用户的角色后,我最终使用了标签:
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
但是当网站呈现时我收到错误消息:&#34;找不到ContentPlaceHolder&#39; MainContent&#39;在主页&#34;。所以,我的问题是,是否可以在MasterPage中使用RenderPartials并将ASP ContentHolders放入其中?这是为什么?有没有其他方法来重新组织MasterPage,这样我可以使它看起来更干净,更可读?提前感谢您的建议。
答案 0 :(得分:1)
应在母版页中使用asp:ContentPlaceHolder
标记。在内容页面中,您需要使用asp:Content
。但是对于Html.RenderPartial
,您无法使用它们,它只是在指定位置插入部分ASCX页面。因此,以下是构建布局的三种常用方法:asp:ContentPlaceHolder
带有asp:Content
标记,Html.RenderPartial
和Html.RenderAction/Html.Action帮助程序。