zl程序教程

您现在的位置是:首页 >  后端

当前栏目

ASp.NET MVC 路由「建议收藏」

NetASP路由MVC 建议 收藏
2023-06-13 09:12:40 时间

大家好,又见面了,我是你们的朋友全栈君。

路由

ASP.NET MVC Route—转发请求: 1.客户端发起请求 2.到达IIS 3.转发到程序集 4.经过一个路由匹配–转发到匹配的控制器中 5.匹配的action去处理

RouteConfig中如果有多个路由,从上到下进行匹配, 按照路由url中的正则表达式进行匹配,

在命中url后找不到Controller或View则使用defaults中的默认参数

public static void RegisterRoutes(RouteCollection routes)
        { 
   
            //忽略路由: XXXX.axd/XXXXX 不去匹配路由
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            //在MVC之前,WebFrom开发,IIS通过aspx后缀进行匹配
            //后来MVC出现之后,通过IIS补丁,追加后缀进行识别匹配
            //IIS升级,不需要补丁
            //于是需要忽略掉带axd的请求


            //固定路由
            routes.MapRoute(
                name: "about",
                url: "about",
                defaults: new { 
    controller = "Home", action = "About", id = UrlParameter.Optional }
            );

            //修改控制器的名称
            routes.MapRoute(
                name: "Test",
                url: "Test",
                defaults: new { 
    controller = "First", action = "Index", id = UrlParameter.Optional }

            );

            // http://localhost:52176/First/String_2021_12_02 //ToFirst
            // 匹配路由ToFirst,因为格式符合{controller}/{action}_{year}_{month}_{day}
            routes.MapRoute(
                name: "ToFirst",
                url: "{controller}/{action}_{year}_{month}_{day}",
                defaults: new { 
    controller = "First", action = "String", id = UrlParameter.Optional },
                constraints: new
                { 
   
                    year = @"\d{4}",
                    month = @"\d{1,2}",
                    day = @"\d{2}"
                }

            );


            //http://localhost:52176/First/String?year=2021&month=12&day=02 //Defult
            //http://localhost:52176/First/String?year=2021&month=6&day=02 //Defult
            //匹配路由Defult,因为格式"String?year=2021&month=12&day=02"作为一个参数



            //路由规则是key-value的形式
            //如果路由是多个,name的值不能相同,value:url url--正则匹配
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { 
    controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162940.html原文链接:https://javaforall.cn