.NET MVC5专题(视图引擎详解)

本文详细探讨了.NET MVC5中的视图引擎,包括如何在全局文件配置相关代码,以及视图引擎的核心类的讲解。
摘要由CSDN通过智能技术生成

在全局文件加如下代码

protected void Application_Start()
{
   
    string engineDescription = string.Join(",", ViewEngines.Engines.ToList().Select(v => v.ToString()));
    //清除默认视图引擎
    ViewEngines.Engines.Clear();
    //添加自己视图引擎
    ViewEngines.Engines.Add(new CustomViewEngine());
}

视图引擎的类

/// <summary>
/// 解决方案:
/// a 覆写的是FindView而不是CreateView(迟了),而且一定得set回去 Materal--66.6红包
/// b CreateView时直接修改path(狠人)   RGB--66.6红包
/// 注意不同的路径如_ViewStart
/// </summary>
public class CustomViewEngine : RazorViewEngine
{
   
    #region 构造函数
    public ElevenCustomViewEngine() : this(null)
    {
   
    }
    public ElevenCustomViewEngine(IViewPageActivator viewPageActivator) : base(viewPageActivator)
    {
   
        this.SetEngine("");
    }
    #endregion

    #region A
    public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
    {
   
        //if (controllerContext.HttpContext.Request.UserAgent.Contains("Chrome/74.0.3729.169"))
        //{
   
        //    this.SetEngine("Chrome");
        //}
        //else
        //{
   
        //    this.SetEngine("");//一定得有,因为只有一个Engine实例
        //}
        
asp.net mvc 自定义视图引擎 public ThemeableRazorViewEngine() { AreaViewLocationFormats = new[] { //themes "~/Areas/{2}/Themes/{3}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Themes/{3}/Views/Shared/{0}.cshtml", //default "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml", }; AreaMasterLocationFormats = new[] { //themes "~/Areas/{2}/Themes/{3}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Themes/{3}/Views/Shared/{0}.cshtml", //default "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml", }; AreaPartialViewLocationFormats = new[] { //themes "~/Areas/{2}/Themes/{3}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Themes/{3}/Views/Shared/{0}.cshtml", //default "~/Areas/{2}/Views/{1}/{0}.cshtml", "~/Areas/{2}/Views/Shared/{0}.cshtml" }; ViewLocationFormats = new[] { //themes "~/Themes/{2}/Views/{1}/{0}.cshtml", "~/Themes/{2}/Views/Shared/{0}.cshtml", //default "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml", //Admin //"~/Administration/Views/{1}/{0}.cshtml", //"~/Administration/Views/Shared/{0}.cshtml", }; MasterLocationFormats = new[] { //themes "~/Themes/{2}/Views/{1}/{0}.cshtml", "~/Themes/{2}/Views/Shared/{0}.cshtml", //default "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; PartialViewLocationFormats = new[] { //themes "~/Themes/{2}/Views/{1}/{0}.cshtml", "~/Themes/{2}/Views/Shared/{0}.cshtml", //default "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml", //Admin //"~/Administration/Views/{1}/{0}.cshtml", //"~/Administration/Views/Shared/{0}.cshtml", }; FileExtensions = new[] { "cshtml" }; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值