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());


  • 相关阅读:
    python列表
    OSS对象存储的文件上传、解冻、下载与查看
    常用压缩命令
    SWAP
    K8S_第一课作业_20200407
    K8S--- yaml配置文件
    K8S 简介
    php-fpm进程数控制
    linux常用查询命令
    Docker Note1——架构和三要素
  • 原文地址:https://www.cnblogs.com/rickie/p/2024375.html
Copyright © 2011-2022 走看看