zoukankan      html  css  js  c++  java
  • ASP.NET MVC 自定义view engine


    1. 先看下webformviewengine的构造函数:
    public WebFormViewEngine()
    {
        
    base.MasterLocationFormats = new string[] { "~/Views/{1}/{0}.master""~/Views/Shared/{0}.master" };
        
    base.ViewLocationFormats = new string[] { "~/Views/{1}/{0}.aspx""~/Views/{1}/{0}.ascx""~/Views/Shared/{0}.aspx""~/Views/Shared/{0}.ascx" };
        
    base.PartialViewLocationFormats = base.ViewLocationFormats;
    }

    base.ViewLocationFormats 可以看出view page为什么只能写在views文件夹下的原因了。所以我们只需要在新的view engine的构造函数中修改下base.ViewLocationFormats 路径即可。

    2. 下面是一个自定义的View Engine -- SkinSupportViewEngine,它需要继承WebFormViewEngine。

        public class SkinSupportViewEngine : WebFormViewEngine
        {
            public SkinSupportViewEngine()
            {
                string[] mastersLocation = new[]
                                               {
                                                   string.Format("~/skins/{0}/{0}.master",
                                                                 Utils.SkinName)
                                               };
                MasterLocationFormats = this.AddNewLocationFormats(new List<string>(MasterLocationFormats),
                                                                   mastersLocation);

                string[] viewsLocation = new[]
                                             {
                                                 string.Format("~/skins/{0}/Views/{{1}}/{{0}}.aspx",
                                                               Utils.SkinName),
                                                 string.Format("~/skins/{0}/Views/{{1}}/{{0}}.ascx",
                                                               Utils.SkinName)
                                             };
                ViewLocationFormats =
                    PartialViewLocationFormats = this.AddNewLocationFormats(new List<string>(ViewLocationFormats),
                                                                            viewsLocation);
            }

    ......

    }

    3. 最后还需要在Global 文件中注册新的View Engine

                ViewEngines.Engines.Clear();
                ViewEngines.Engines.Add(new SkinSupportViewEngine());


  • 相关阅读:
    生成XML文件。
    使用EHCache需要注意的几个问题
    Spring @Value取值为null或@Autowired注入失败
    Windows安装mosquitto
    Linux学习
    hive 日期格式转换
    正则表达式验证字符串是否为IP
    string字符串根据指定字符进行截取转成对应的集合
    CENTOS7自用简单配置
    git的简单使用
  • 原文地址:https://www.cnblogs.com/rickie/p/2024375.html
Copyright © 2011-2022 走看看