我有我的网站的一个单独的部分(路由),我想用不同的布局/ CSS等。
因此,当用户在我的网站的主要部分,他们得到的默认布局。 但是,当他们登录并去商店,店内部分(路由)使用不同的布局/ CSS。
所以...
- www.blahblahblah.com/
- www.blahblahblah.com/admin/
- www.blahblahblah.com/home/contactus/
......所有使用默认_layout
但...
- www.blahblahblah.com/store/
- www.blahblahblah.com/store/admin/
...使用_LayoutStore
我已经看到了这个做依据关闭的角色这里( http://forums.asp.net/t/1653362.aspx/1 )和这里( 如何在MVC 3?使用多个布局 ),但我不希望去做。 我需要根据关的顾客采取什么路线(又名查看他们在里面)我的布局选择。
预先感谢您的任何和所有帮助。
你看使用_ViewStart.cshtml
任何给定的视图文件夹中的文件?
如果这就是你要找不正是对,你想在路由中的值来决定使用,你可以尝试创造一些辅助方法将返回布局要使用的布局:
public static class LayoutHelper
{
public static string GetLayout(RouteData data, string defaultLayout = "")
{
if (data.Values["action"] == "edit")
return "~/views/shared/_AdminLayout.cshtml";
return defaultLayout;
}
}
然后,您可以从您的视图,像这样称呼它:
@{
Layout = LayoutHelper.GetLayout(
Request.RequestContext.RouteData,
"~/views/shared/_layout.cshtml");
}
但在我看来,如果你创建了一个_ViewStart.cshtml
在文件Views/Store
包含店面布局的文件夹,你会好到哪里去。