zoukankan      html  css  js  c++  java
  • 让Orchard支持多个Layout

    默认Orchard只有一个Layout,有的时候,我们的站点往往需要多个母版页。那么,如果要让Orchard支持多个Layout,以下是一种解决方案。

    一:创建LayoutFilter

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Routing;
    using Orchard;
    using Orchard.Mvc.Filters;

    namespace MyTheme.Filters
    {
        public class LayoutFilter : FilterProvider, IResultFilter
        {
            private readonly IWorkContextAccessor _wca;

            public LayoutFilter(IWorkContextAccessor wca)
            {
                _wca = wca;
            }

            public void OnResultExecuting(ResultExecutingContext filterContext)
            {
                WorkContext workContext = _wca.GetContext();

                if (HttpContext.Current.Request.Url.PathAndQuery.IndexOf("xxx", StringComparison.OrdinalIgnoreCase) > -1)
                {
                    workContext.Layout.Metadata.Alternates.Add("Layout__empty");
                }
            }

            public void OnResultExecuted(ResultExecutedContext filterContext) { }
        }

    }

    上文实现的代码,就是当我们的URL地址中,还有xxx这3个字符的时候,让我们的页面调用Layout-empty.cshtml这个母版页。

     

    二:到模版的View下去创建对应的Layout页面

    现在,对应上文代码,到我们自己的模版的View文件夹下去创建Layout-empty.cshtml这个母版页。注意,如果我们没有创建这个母版页,或者Orchard找不到这个母版页,则Orchard还是会去找自己默认的母版页来给我们展现页面。

    现在,重启一下IIS服务吧,就能看到效果了。

    微信扫一扫,关注最课程,获取每日一练

  • 相关阅读:
    Linux系统常见的压缩与打包
    java 语言规范 java language specifications
    java 枚举
    github邮箱验证技巧
    关于 python
    博客园 编程基础 精华
    fiddler
    一个牛人写的博客
    使用xmarks同步 chrome ie firefox safari书签
    linux 中的 tar 解压
  • 原文地址:https://www.cnblogs.com/luminji/p/4347313.html
Copyright © 2011-2022 走看看