让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服务吧,就能看到效果了。
微信扫一扫,关注最课程,获取每日一练
让Orchard支持多个Layout的更多相关文章
- 一天搞定CSS:支持IE的Layout布局--16
1.BFC和Layout区别: BFC和Layout的作用是一样的,只是对浏览器的支持不同而已. BFC- -标准浏览器所具有的 Layout- -IE浏览器所具有的 BFC详解地址:http://b ...
- On having layout
英文原文在此:http://www.satzansatz.de/cssd/onhavinglayout.htm 介绍 Internet Explorer 中有很多奇怪的渲染问题可以通过赋予其“layo ...
- [译]:Orchard入门——Orchard控制面板概览
原文链接:Getting Around the Dashboard 文章内容基于Orchard 1.8版本 Orchard控制面板用于管理网站.改变外观.添加内容以及控制Orchard功能可用性.成功 ...
- Orchard创建全局应用
Orchard的本地化管理托管于一个外部服务(Crowdin),这个项目是公开的且欢迎大家做贡献. Orchard支持两种类型的本地: Orchard应用程序以及已安装模块中的文本字符串的本地化(其实 ...
- IE的layout属性详解
http://www.cnblogs.com/yuzhongwusan/archive/2012/03/09/2387052.html 很多在谷歌浏览器(chrome).火狐浏览器(Fire Fox) ...
- Orchard源码分析(1):Orchard架构
本文主要参考官方文档"How Orchard works"以及Orchardch上的翻译. 源码分析应该做到庖丁解牛,而不是以管窥豹或瞎子摸象.所以先对Orchard架构有 ...
- Orchard用LiveWriter写博客
本文链接:http://www.cnblogs.com/souther/p/4544241.html Orchard本身提供一个内建的管理面板来写博客,许多人更喜欢采用客户端提交的方式,例如Windo ...
- Orchard学习系列-----如何运行的
感慨:当接触到微软这套程序时,代码实在是太好了,好的几乎都读不懂.很久之前就对这个套开源程序特别感兴趣,但读不明白也让人郁闷. 背景(Orchard官网): 可组装系统的CMS系统,OrChard在运 ...
- U3D UGUI学习5 - Layout和文字适配
Layout这部分UGUI算是比NGUI做的到位 之前遇到了一个问题,NGUI做文字和背景框适配和容易,绑定一下就好了.UGUI你得弄Layout才可以,而且还需要配置. 但这个Layout使用场合是 ...
随机推荐
- 004 作业二(单击弹跳li节点的每个文本节点的值;点击每个 li 节点, 若 li 节点的文本值没有 ^^ 开头, 加上,有,则去除)
1.需求 点击每个 li 节点, 都弹出其文本值 2.程序 <!DOCTYPE html> <html> <head> <meta charset=" ...
- 通过jstack与jmap分析一次线上故障
一.发现问题 下面是线上机器的cpu使用率,可以看到从4月8日开始,随着时间cpu使用率在逐步增高,最终使用率达到100%导致线上服务不可用,后面重启了机器后恢复. 二.排查思路 简单分析下可能出问题 ...
- 安装redis出现的问题
这个问题是我在腾讯云上安装redis时出现的错误, 1.在执行make命令时出现的错误 解决方案,没有安装gcc 什么是gcc: GCC是一个用于linux系统下编程的编译器是一个用于编程开发的自由编 ...
- python面向对象魔术方法补充
一.描述符 在 面向对象 编程中 定义一个(没有定义方法)类:class person , 在这个类里面,有name,age, heigth, weight,等等属性, 这个类就可以看作一个对 per ...
- HTTP协议-MIME类型
每一个 URL 都代表着一个资源对象,而当我们请求一个网页的时候,看似只请求了一个 URI(统一资源标识符),实际上这个网页可能包含多个 URI,例如图片资源的 URI 和视频资源的 URI 等.此时 ...
- MySQL 集群
MySQL Galera介绍 主要功能: 同步复制 真正的multi-master,即所有节点可以同时读写数据库 自动的节点成员控制,失效节点自动被清除 新节点加入数据自动复制 真正的并行复制,行级 ...
- [工具]GitHub上整理的一些工具[转]
技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 ...
- 使用GIT进行源码管理——GIT托管服务2018
我曾经介绍过几个在线的GIT托管服务,然而时过境迁,发生了不少变化,便写了此文章,在新的一年重新更新一下: 国外托管网站: 国外托管网站比起国内的来相对靠谱点,但一个主要缺点是网速较慢,并且可能在 ...
- Golang 特性简介
by sheepbao 主要大概介绍go语言的历史和特性,简单的入门. 来历 很久以前,有一个IT公司,这公司有个传统,允许员工拥有20%自由时间来开发实验性项目.在2007的某一天,公司的几个大牛, ...
- Programming 2D Games 读书笔记(第二章)
本意还是想了解DirectX的,由于网上拿不到书的pdf文档,幸好有作者的源代码示例,想完整的看一下,基本的游戏需要的点. 下面直接以代码为例,仅用于帮助自身理解 http://www.progr ...