我有一个MVC3网站,在网页顶部标题上显示网站名称。这来自site.master页面。我想将该静态标题名称转换为页面顶部的下拉列表。选择更改后 - 我想显示一个不同的site.master页面(内容视图完全来自与原始选项不同的控制器)。我怎样才能在MVC3网络应用程序中执行此操作?
答案 0 :(得分:3)
默认情况下,所有页面都使用MVC3 Web应用程序项目中Views目录下直接找到的_ViewStart.cshtml
。这将指向_Layout.cshtml
目录下的Views/Shared
(mvc的母版页)。
将单个_ViewStart.cshtml
置于相应的View目录下将覆盖默认行为。因此,如果您将Home View作为示例,则_ViewStart.cshtml
Views/Home
此处_ViewStart.cshtml
将返回其特定布局;因此代码是
@{
Layout = "~/Views/Shared/_HomeLayout.cshtml";
}
如您所见,您将创建一个名为_HomeLayout.cshtml
的自己的布局主文件,并将其放在Views/Shared
目录下。根据您的需要,您将重复此视图的数量(如果您没有指定一个视图,它将始终使用默认视图)。看看下面给出的截图。根据您的需求,您可以在下拉列表中选择不同的视图。
答案 1 :(得分:1)
很容易,在选择更改时将窗口重定向到在控制器上执行特定操作方法的新URL。
我没有实际的代码示例,但让我尝试用简单的英语解释
例如默认情况下,您加载 HomeController 的索引操作方法,索引视图使用“ site.master ”。现在,在选择更改时,您将浏览器重定向到不同的URL(“ NewHome / Index ”)。 NewHomeController 下的索引视图将有不同的母版页,您可以通过以下方式设置
将代码放在
下面@{
Layout = "~/Views/Shared/_NewHomeLayout.cshtml";
}