ASP MVC中如何使用不同的模板

在开发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这个模板

每个单独的action对应的cshtml文件都可以用Layout单独指定需要的模板。

也可以通过后台代码设置


 return View("视图名称","模板名称",model);

有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~

用if进行判断。

谢谢专家的回复,但是我对该方案不是很满意,觉得配置的方案要比较好一些。

你在每个view(.cshtml文件)中都可以用下面的代码去指定自己想要的模板:

@{
    Layout = "_OtherLayout";
}

注意:
指定的布局可以使用完整路径(例如,/Pages/Shared/_Layout.cshtml或/Views/Shared/_Layout.cshtml)或部分名称(例如:_Layout)。当提供部分名称时,Razor 视图引擎使用其标准发现过程搜索布局文件。首先搜索处理程序方法(或控制器)所在的文件夹,然后是Shared文件夹