加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 是否可以在基于路由的MVC4中使用不同的布局?

发布时间:2020-12-15 20:40:51 所属栏目:asp.Net 来源:网络整理
导读:我有一个单独的部分(路线)我的网站,我想使用不同的布局/ CSS等. 因此,当我的网站主要部分的用户获得默认布局时. 但是当他们登录并进入商店时,商店部分(路线)使用不同的布局/ css. 所以… www.blahblahblah.com/ www.blahblahblah.com/admin/ www.blahblahbla
我有一个单独的部分(路线)我的网站,我想使用不同的布局/ 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)和这里(How to use multiple Layout in 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;
        }
    }

然后你就可以从你的View中调用它:

@{
    Layout = LayoutHelper.GetLayout(
        Request.RequestContext.RouteData,"~/views/shared/_layout.cshtml");
}

但在我看来,如果你在包含商店布局的Views / Store文件夹中创建一个_ViewStart.cshtml文件,那么你就可以了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读