一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

也玩MVC3.0 Razor自定義視圖引擎來修改默認(rèn)的Views目錄結(jié)構(gòu)

剛剛愛上MVC3.0,幾個(gè)不眠夜的學(xué)習(xí)越來越有趣。今天隨手嘗試自定義Mvc3.0的視圖引擎,雖然已成功,但是還發(fā)現(xiàn)有點(diǎn)小疑問。隨手貼出來希望大家指教指教。

MVC的視圖文件目錄被固定/Views目錄內(nèi),區(qū)域視圖文件也是被固定在/Areas目錄下,出于好奇和對(duì)目錄名的敏感,嘗試修改它。通過reflector找到視圖引擎的構(gòu)造接口類VirtualPathProviderViewEngine

在MVC2.0中,自定義自己的視圖引擎,繼承它即可,但在3.0中,我發(fā)現(xiàn)繼承它會(huì)缺少一個(gè)函數(shù)。再reflector獲得了BuildManagerViewEngine的抽象類,因?yàn)?a class="bold" href="http://www.aisto.com/roeder/dotNET/Default.ASPx?Target=code://System.Web.Mvc:3.0.0.0:31bf3856ad364e35/System.Web.Mvc.RazorViewEngine">RazorViewEngine繼承的是該抽象類。

所以最直接還是在自己的視圖引擎中繼承它。

public class myViewEngine : BuildManagerViewEngine    {        // Fields        internal static readonly string ViewStartFileName = "_ViewStart";        // Methods        public myViewEngine()            : this(null)        {        }        public myViewEngine(IViewPageActivator viewPageActivator)            : base(viewPageActivator)        {            base.AreaViewLocationFormats = new string[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/{1}/{0}.vbhtml", "~/Areas/{2}/Views/Shared/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.vbhtml" };            base.AreaMasterLocationFormats = new string[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/{1}/{0}.vbhtml", "~/Areas/{2}/Views/Shared/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.vbhtml" };            base.AreaPartialViewLocationFormats = new string[] { "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/{1}/{0}.vbhtml", "~/Areas/{2}/Views/Shared/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.vbhtml" };            base.ViewLocationFormats = new string[] { "~/T/{1}/{0}.cshtml",  "~/T/Shared/{0}.cshtml" };            base.MasterLocationFormats = new string[] { "~/T/{1}/{0}.cshtml",  "~/T/Shared/{0}.cshtml" };            base.PartialViewLocationFormats = new string[] { "~/T/{1}/{0}.cshtml",  "~/T/Shared/{0}.cshtml" };            base.FileExtensions = new string[] { "cshtml", "vbhtml" };        }        protected override IView CreatePartialView(ControllerContext controllerContext, string partialPath)        {            string layoutPath = null;            bool runViewStartPages = false;            IEnumerable<string> fileExtensions = base.FileExtensions;            return new RazorView(controllerContext, partialPath, layoutPath, runViewStartPages, fileExtensions, base.ViewPageActivator);        }        protected override IView CreateView(ControllerContext controllerContext, string viewPath, string masterPath)        {            string layoutPath = masterPath;            bool runViewStartPages = true;            IEnumerable<string> fileExtensions = base.FileExtensions;            return new RazorView(controllerContext, viewPath, layoutPath, runViewStartPages, fileExtensions, base.ViewPageActivator);        }    }

NET技術(shù)也玩MVC3.0 Razor自定義視圖引擎來修改默認(rèn)的Views目錄結(jié)構(gòu),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲视频在线免费播放 | 狠狠色狠狠色综合网 | 国产精品中文字幕在线观看 | 色婷婷资源网 | 激情图片激情视频激情小说 | 麻豆国内精品久久久久久 | 玖玖玖视频在线观看视频6 玖玖免费 | 91精品综合国产在线观看 | 久久精品综合 | se就是色94欧美setu | 欧美亚洲另类色国产综合 | 国产二区自拍 | 精品国产免费第一区二区 | 99精品视频在线播放2 | 欧美成人高清免费大片观看 | 久久精品视频播放 | 一本大道加勒比久久 | 最新国产精品视频免费看 | 久热精品6| 激情综合婷婷丁香六月花 | 欧美日韩色视频在线观看 | 日本午夜www高清视频 | 国产精品视频第一区二区三区 | 美女一区二区三区 | 美女胸又www又黄的网站视频 | 香蕉成人国产精品免费看网站 | 四虎最新入口 | 99精品视频在线观看 | 欧美专区视频 | 怡红院亚洲红怡院天堂麻豆 | 亚洲视频二 | 手机在线观看亚洲国产精品 | 黄网在线观看网址入口 | 一区二区三区免费在线观看 | 香蕉97超级碰碰碰免费公 | 欧美播播 | 黄篇网站在线观看 | 日本免费一区二区三区视频 | 亚洲福利三区 | 欧美激情一区二区三区在线播放 | 性满足久久久久久久久 |