ASP.NET MVC 重写RazorViewEngine实现多主题切换
2017-06-28 08:42
555 查看
在ASP.NET MVC中来实现主题的切换一般有两种方式,一种是通过切换皮肤的css和js引用,一种就是通过重写视图引擎。通过重写视图引擎的方式更加灵活,因为我不仅可以在不同主题下面布局和样式不一样,还可以让不同的主题下面显示的数据条目不一致,就是说可以在某些主题下面添加一下个性化的东西。
本篇我将通过重写视图引擎的方式来进行演示,在这之前,我假设你已经具备了MVC的一些基础,系统登录后是默认主题,当我们点击切换主题之后,左侧菜单栏的布局变了,右侧内容的样式也变了,而地址栏是不变的。界面UI用的metronic,虽然官网是收费的,但是在天朝,总是可以找到免费的。metronic是基于bootstrap的UI框架,官网地址:http://keenthemes.com/preview/metronic/
我们先来看下效果:
View Code
实现方式实在是太简单,简单得我不知道如何表述才好,我还是记下来,方便有需要的人可以查阅,希望可以帮到你们。由于项目引入了庞大的各种相关文件以致文件比较大,网速原因无法上传源码还望见谅!
本篇我将通过重写视图引擎的方式来进行演示,在这之前,我假设你已经具备了MVC的一些基础,系统登录后是默认主题,当我们点击切换主题之后,左侧菜单栏的布局变了,右侧内容的样式也变了,而地址栏是不变的。界面UI用的metronic,虽然官网是收费的,但是在天朝,总是可以找到免费的。metronic是基于bootstrap的UI框架,官网地址:http://keenthemes.com/preview/metronic/
我们先来看下效果:
using System.Configuration; using System.Web.Mvc; namespace Secom.Emx.WebApp.Helper { public class Utils { private static string _themeName; public static string ThemeName { get { if (!string.IsNullOrEmpty(_themeName)) { return _themeName; } //模板风格 _themeName =string.IsNullOrEmpty(ConfigurationManager.AppSettings["Theme"])? "" : ConfigurationManager.AppSettings["Theme"]; return _themeName; } } public static void ResetRazorViewEngine(string themeName) { themeName = string.IsNullOrEmpty(themeName) ? Utils.ThemeName : themeName; if (!string.IsNullOrEmpty(themeName)) { ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new CustomRazorViewEngine(themeName)); } } } }
View Code
实现方式实在是太简单,简单得我不知道如何表述才好,我还是记下来,方便有需要的人可以查阅,希望可以帮到你们。由于项目引入了庞大的各种相关文件以致文件比较大,网速原因无法上传源码还望见谅!
相关文章推荐
- asp.net mvc 用自定义的RazorViewEngine实现主题的自由切换遇到的问题!
- Asp.net MVC 移除视图引擎(WebFormViewEngine或者RazorViewEngine)
- Asp.net MVC 自定义ViewEngine的简单实现
- Asp.net MVC 自定义ViewEngine的简单实现
- ASP.NET MVC的Razor引擎二:RazorView、RazorViewEngine
- ASP.NET MVC的Razor引擎:RazorViewEngine
- ASP.NET MVC:自定义RazorViewEngine视图引擎
- A Look at the Razor View Engine in ASP.NET MVC
- Asp.net MVC 自定义ViewEngine的简单实现
- ASP.NET MVC的Razor引擎:RazorViewEngine
- ASP.NET MVC的Razor引擎一:View编译原理
- ASP.NET MVC 解析模板生成静态页一(RazorEngine)
- 利用Razor在ASP.NET MVC中的实现,自定义视图引擎框架(1)
- ASP.NET 实现主题切换实例
- 从零开始学习 ASP.NET MVC 1.0 (五) ViewEngine 深入解析与应用实例 【转】
- Asp.Net MVC 视图(View)实现 1
- ASP.NET MVC的Razor引擎:View编译原理
- 转发-基于ASP.NET MVC 4/5 Razor的模块化/插件式架构实现
- ASP.NET MVC自定义视图引擎ViewEngine 创建Model的专属视图
- ASP.NET MVC的Razor引擎:IoC在View激活过程中的应用