MasterPage中的Html.RenderPartial

时间:2011-01-11 20:41:40

标签: asp.net-mvc-2 renderpartial

我试图通过使用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,这样我可以使它看起来更干净,更可读?提前感谢您的建议。

1 个答案:

答案 0 :(得分:1)

应在母版页中使用asp:ContentPlaceHolder标记。在内容页面中,您需要使用asp:Content。但是对于Html.RenderPartial,您无法使用它们,它只是在指定位置插入部分ASCX页面。因此,以下是构建布局的三种常用方法:asp:ContentPlaceHolder带有asp:Content标记,Html.RenderPartialHtml.RenderAction/Html.Action帮助程序。