-->

是否有可能使用基于断路线的M​​VC4不同的布局?(Is it possible to use di

2019-07-31 04:36发布

我有我的网站的一个单独的部分(路由),我想用不同的布局/ 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?使用多个布局 ),但我不希望去做。 我需要根据关的顾客采取什么路线(又名查看他们在里面)我的布局选择。

预先感谢您的任何和所有帮助。

Answer 1:

你看使用_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包含店面布局的文件夹,你会好到哪里去。



文章来源: Is it possible to use different layouts in MVC4 based off of routes?