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

来源:互联网 发布:冒泡排序法的代码c语言 编辑:程序博客网 时间:2024/05/22 05:18

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

默认的路由就不说了

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



0 0