Asp.net-mvc PlaceHolder,怎么用呢?

时间:2013-04-15 09:32:26

标签: asp.net-mvc asp.net-mvc-2 controls placeholder

我的主页面上有一些Html.RenderPartial和一个随机的ContentPlaceHolder,或多或少是这样的:

<body>

<% Html.RenderPartial("Controls/Menu"); %>
<% Html.RenderPartial("Controls/GenericControl"); %>
<asp:ContentPlaceHolder ID="MyContent" runat="server" />

</body>

目前在 Menu.ascx 文件中,我有一个按钮列表。在 GenericControl.ascx 文件中,有一些按钮来管理内容 我在菜单中拥有与按钮一样多的视图,内容如此描述:

<asp:Content ID="Content1" ContentPlaceHolderID="MyContent" runat="server">
<div>Some divs here</div>
<asp:Content>

这是我的问题。 我想在我的视图中添加另一个 asp:Content ,我不想在母版页中链接它,而是在GenericControl中。 显然我不能使用ContentPlaceHolder。我正在尝试使用PlaceHolder,但我遇到了一些问题,无法找到如何使用它。

1 个答案:

答案 0 :(得分:5)

如果您使用的是Asp.net MVC,则不应使用服务器控件(以<asp: />开头的那些控件)。

使用Razor引擎在asp.net mvc中定义占位符,你可以这样做:

在_Layout中

@RenderSection("header", required: false)

在视图中

@section header {
   <h1>Hello World</h1>
}

要使其在网络表单视图引擎中运行,可能您必须将@替换为<% %>