在开发MVC应用时,管理页面和内容显示页面是两种风格的页面,如何在MVC程序中使用不同的模板?
Layout = "_Layout";
在目录views下管理页面对应controller目录下放一个_ViewStart.cshtml文件,内容为下面,然后修改下Layout值路径为题主需要的模板路径
@{
Layout = "~/Views/Shared/_LayoutMgr.cshtml";
}
如果管理和内容共用一个controller,那么可以用ViewBag设置一个特殊的标志,然后修改views/_ViewStart.cshtml文件,根据ViewBag值做模板切换,如下面的
@{
if (ViewBag.mgr != null)
{ Layout = "~/Views/Shared/_LayoutMgr.cshtml"; }
else
{ Layout = "~/Views/Shared/_Layout.cshtml"; }
}
在管理页面的Action中设置下ViewBag.msg=1;就可以切换到_LayoutMgr.cshtml这个模板
也可以通过后台代码设置
return View("视图名称","模板名称",model);
有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~
用if进行判断。
谢谢专家的回复,但是我对该方案不是很满意,觉得配置的方案要比较好一些。
你在每个view(.cshtml文件)中都可以用下面的代码去指定自己想要的模板:
@{
Layout = "_OtherLayout";
}
注意:
指定的布局可以使用完整路径(例如,/Pages/Shared/_Layout.cshtml或/Views/Shared/_Layout.cshtml)或部分名称(例如:_Layout)。当提供部分名称时,Razor 视图引擎使用其标准发现过程搜索布局文件。首先搜索处理程序方法(或控制器)所在的文件夹,然后是Shared文件夹。