Asp.net mvc ASP.NET MVC2母版页占位符可见性

Asp.net mvc ASP.NET MVC2母版页占位符可见性,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,asp:占位符有一个visible属性,它控制是否在页面上呈现其内容 我在MVC2母版页中声明了一个占位符,并将其可见性设置为false 请告诉我如何从继承自MVC2母版页的MVC2视图模板中控制占位符的可见性 这似乎是一项简单的任务,但我正在努力探索如何实现这一目标。我想我应该能够从降序视图模板中访问占位符(就像web表单代码隐藏一样),并在那里设置它的可见性,但这样做的方法是逃避我…不要这样做。占位符是经典WebForms的遗留内容。在ASP.NET MVC应用程序中操作服务器端控件非常糟糕

asp:占位符有一个visible属性,它控制是否在页面上呈现其内容

我在MVC2母版页中声明了一个占位符,并将其可见性设置为false

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


这似乎是一项简单的任务,但我正在努力探索如何实现这一目标。我想我应该能够从降序视图模板中访问占位符(就像web表单代码隐藏一样),并在那里设置它的可见性,但这样做的方法是逃避我…

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

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

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

一些超级部分

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

谢谢您的回答。不幸的是,母版页中无法访问模型(或ViewData)(我希望评估母版页中的条件以保持干燥)。我们也不用剃须刀(也许我们应该用)。在我看来,母版页应该能够包含条件元素——有没有其他方法可以实现这一点?@lukkea,您可以有一个基本视图模型,并在其中强烈键入母版页。此基本视图模型类将包含必要的属性。根据可见性条件来自何处,可能还有其他方法来实现它。再次感谢-我们使用的是“标准”母版页,而不是“MVC2视图母版页”。现在我已经修复了应用程序使用“MVC2视图母版页”的问题,我们无法将母版页强式键入模型,因为这是一个相当大、复杂的应用程序&有些页面使用动态类型。但是,
ViewData
可用于进行条件检查。