----------配置路由--------------

记录几个简单的路由配置以防忘记

默认的路由就不说了

1要访问url带有两个参数的路由,例如:home/2/3    注:2和3是参数

 routes.MapRoute(
             "Default1", // 路由名称
             "{controller}/{action}/{id}/{type}", // 带有两个参数的 URL {id}{type}需要和传递的一致
             new { controller = "", action = "" ,如果id,和type可以为空 这里配置下 如id=UrlParameter.Optional,type=UrlParameter.Optional},
             new { }// 参数默认值
         );

控制器 里声明两个参数 需要和定义的路由里一致,int id,string type


配置多层级目录的路由:

控制器下有多级目录:Controllers--Admin--Admin--AdminsContorlls.cs

可见在控制器下又有两层文件夹,
那么在视图层对应的视图应该 就是,,Views--Admin--Admin--Admins--Index.cshtml

那么问题来了 如果直接访问就会报错误,找不到视图之类的.........

解决方法 还是配置路由

 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            /*创建自定义路由*/
            //多级目录显示视图
            routes.MapRoute(
            "User", // 路由名称
            "文件夹/文件夹/{controller}/{action}/参数/参数", // 带有两个参数的 URL {id}{type}需要和传递的一致
            new { controller = "", action = "", 参数= UrlParameter.Optional }
        );

设置完路由 在自定义方法

这个是自定义的方法  需要把方法名放到application_Start里启动

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

我们的MyViewEngine 方法 是自定义的视图顺序

所有需要继承RazorViewEngine

代码如下:

public MyViewEngine()
        {
            ViewLocationFormats = new[] {
            "~/Views/{1}/{0}.cshtml",
            "~/Views/Shared/{0}.cshtml",
            "~/Views/文件夹/文件夹/{1}/{0}.cshtml"
            
            };
        }

{1}是控制器名,{0}是视图的名称 如index.cshtml



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

费劲_奋进

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值