让Orchard支持多个Layout

简介: 默认Orchard只有一个Layout,有的时候,我们的站点往往需要多个母版页。那么,如果要让Orchard支持多个Layout,以下是一种解决方案。 一:创建LayoutFilter using System;using System.

默认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服务吧,就能看到效果了。

 

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

Creative Commons License本文基于 Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 http://www.cnblogs.com/luminji(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。
目录
相关文章
|
6月前
|
存储 编解码 API
Android Media Framework(一)OpenMAX 框架简介
OpenMAX IL是Khronos Group为嵌入式和移动设备设计的低层级接口,用于统一调用音频、视频和图像编解码器,确保跨平台兼容性。它包括Core API(管理组件加载和方法调用)和Component API(组件实现,如源、接收器、编解码器等)。组件通过端口进行数据交互,客户端使用Core API加载和控制组件。Android引入OMX IL以支持不同芯片上的编解码器。组件状态包括Loaded、Idle、Executing和Invalid。组件架构涉及参数配置、命令处理和缓冲区管理,数据交换通过回调函数完成,端口持有预分配或组件自分配的缓冲区。
|
Android开发
Android JetPack组件之DataBinding的使用详解
Android JetPack组件之DataBinding的使用详解
237 0
|
Android开发 Windows 数据格式
|
XML Android开发 数据格式
|
Android开发 数据格式 XML
Android Design Support Library全解:Part 5 CoordinatorLayout 与其他控件的联动
Android Design Support Library系列第5弹,TabLayout 实现滑动选项卡 1504424076347.png 在前文Part 4 – TabLayout中我们已经使用CoordinatorLayout和其他控件配合过(比如Snackbar出现时,FAB上移),这里来重点介绍其使用方法。
1268 0
|
Android开发 容器 Java
Android Design Support Library全解:Part 4 TabLayout 实现滑动选项卡
Android Design Support Library系列第4弹,TabLayout 实现滑动选项卡 智能管家Tablayout.gif 如上图的滑动选项卡的效果在移动端的应用中很是常见,之前要是该效果需要利用动态加载布局技术和控制滑动技术(比如利用HorizontalScrollView),较为繁琐。
1400 0
|
XML Android开发 数据格式
Android Design Support Library全解:Part 3 NavigationView 抽屉菜单页面
Android Design Support Library系列第三弹,NavigationView 抽屉菜单的实现 左侧弹出菜单 抽屉菜单页面是一中很常见的页面设计,虽然有很多第三方库(SlidingMenu)来帮助我们实现该功能,但是如果自己来实现的话,确实是很麻烦的工作。
1075 0
|
Android开发
Android Design Support Library全解:Part 2 Snackbar
Android Design Support Library系列第2弹: Snackbar “Providing lightweight, quick feedback about an operation is a perfect opportunity to use a snackbar.
861 0