ASP.NET MVC2母版页PlaceHolder可见性

时间:2011-09-01 10:13:56

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

asp:PlaceHolders有一个可见属性,它控制是否在页面上呈现它们的内容。

我已在MVC2母版页中声明了PlaceHolder并将其可见性设置为false。

请告诉我如何从MVC2母版页继承的MVC2视图模板中控制PlaceHolder的可见性?

这似乎是一项简单的任务,但我很难看到它是如何实现的。我想我应该能够从降序视图模板中访问PlaceHolder(就像使用Web表单代码隐藏一样)并且只是在那里设置它的可见性,但是这样做的方法就是逃避我......

1 个答案:

答案 0 :(得分:3)

不要这样做。占位符是传统WebForms的遗留物。在ASP.NET MVC应用程序中操作服务器端控件非常糟糕,您永远不应该这样做。因此,只需忘记在用户控件上设置属性。幸运的是,Razor占位符已被完全删除并替换为部分。因此,不要编写以后无法迁移的代码。

在ASP.NET MVC应用程序中显示/隐藏代码部分的一种方法是在视图中使用if语句。例如:

<% if (Model.ShouldShowSection) { %>
    <div>Some super section</div>
<% } %>

在此示例中,我们在视图模型上测试一个布尔值,该值将呈现此视图的控制器操作。