我的网站有一个单独的部分(路线),我想使用不同的布局/ css等。
因此,当我的网站主要部分的用户获得默认布局时。 但是当他们登录并进入商店时,商店部分(路线)使用不同的布局/ css。
因此...
...全部使用默认_Layout
但是...
...使用_LayoutStore
我看到这是基于角色(http://forums.asp.net/t/1653362.aspx/1)和此处(How to use multiple Layout in MVC 3?)完成的,但我不想这样做。我需要根据客户的路线选择我的布局(也就是看他们在里面)。
提前感谢您提供任何帮助。
答案 0 :(得分:13)
您是否考虑过在任何给定的视图文件夹中使用_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;
}
}
然后你可以从你的View中调用它:
@{
Layout = LayoutHelper.GetLayout(
Request.RequestContext.RouteData,
"~/views/shared/_layout.cshtml");
}
但在我看来,如果你在包含商店布局的_ViewStart.cshtml
文件夹中创建了一个Views/Store
文件,那么你就可以了。