0

我试图通过使用 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,以便我可以使它看起来更清晰和更具可读性?预先感谢您的建议。

4

1 回答 1

1

asp:ContentPlaceHolder标记应在母版页中使用。在您需要使用的内容页面中asp:Content。但是Html.RenderPartial你不能使用它们,它只是在指定的位置插入一个部分 ASCX 页面。所以这里有三种常见的布局布局方式:asp:ContentPlaceHolder使用asp:Content标签Html.RenderPartialHtml.RenderAction/Html.Action助手。

于 2011-01-12T07:33:52.993 回答