MVC自定义视图引擎地址

先看结构

1、RouteConfig 文件(注意顺序)

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            
            routes.MapRoute(
               name: "Manage_Default",
               url: "Manage/{controller}/{action}/{id}",
               defaults: new { controller = "Demo", action = "Index", id = UrlParameter.Optional },
               namespaces: new string[] { "Ku_MVC.Controllers.Manage" }
           );

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }

  2、新增文件 MyRazorViewEngine

public class MyRazorViewEngine : RazorViewEngine
    {
        public MyRazorViewEngine()
            : base()
        {
            ViewLocationFormats = new[] {  
                 "~/Views/{1}/{0}.cshtml",
                 "~/Views/Manage/{1}/{0}.cshtml",
            };

        }

        protected override IView CreatePartialView(ControllerContext controllerContext, string partialPath)
        {
            return base.CreatePartialView(controllerContext, partialPath);
        }

        protected override IView CreateView(ControllerContext controllerContext, string viewPath, string masterPath)
        {
            return base.CreateView(controllerContext, viewPath, masterPath);
        }

        protected override bool FileExists(ControllerContext controllerContext, string virtualPath)
        {
            return base.FileExists(controllerContext, virtualPath);
        }
    }

  3、Global.asax 

 protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
             
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            RegisterView();
        }
        protected void RegisterView()
        {
            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(new Controllers.MyRazorViewEngine());
        }  

效果图

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DT乱“码”

接口测试类(http,post请求)参数 json格式

package RMI; import java.io.BufferedReader; import java.io.DataOutputStream; im...

2449
来自专栏码匠的流水账

聊聊springboot2的ScheduledTasksEndpoint

本文主要研究下springboot2的ScheduledTasksEndpoint

1981
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(88)-Excel导入和导出-主从表结构导出

前言 前面一篇详细讲解了导入导出,本节演示混合结构的导出功能!同时提供代码下载.. 先看效果图:这个一个混合的Excel,列表与自定义信息的混合! ?  ...

2807
来自专栏Java 技术分享

Ajax 案例之三级联动

3436
来自专栏小灰灰

利用Crypto++实现RSA加密算法

之前做一个项目用到crypto++加密库,可以从官网下载对应的源码,其中有一个test.c文件,详细的演示了各种加密算法的使用方法,因此,在其基础上,我将ae...

4477
来自专栏码匠的流水账

聊聊sentinel的NettyHttpCommandCenter

com/alibaba/csp/sentinel/transport/command/NettyHttpCommandCenter.java

1811
来自专栏拂晓风起

cocos2d-js Shader系列4:Shader、GLProgram在jsb(native、手机)和html5之间的兼容问题。cocos2d-js框架各种坑。

2124
来自专栏Spark学习技巧

Sparkml库标签和索引之间转化

StringIndexer StringIndexer将一串字符串标签编码为一列标签索引。这些索引范围是[0, numLabels)按照标签频率排序,因此最频繁...

2485
来自专栏用户画像

jQuery validate

751
来自专栏函数式编程语言及工具

Akka(8): 分布式运算:Remoting-远程查找式

  Akka是一种消息驱动运算模式,它实现跨JVM程序运算的方式是通过能跨JVM的消息系统来调动分布在不同JVM上ActorSystem中的Actor进行运算,...

4369

扫码关注云+社区

领取腾讯云代金券