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

ASp.NET MVC 路由「建议收藏」路由ASP.NETMVCRoute—转发请求:1.客户端发起请求2.到达IIS3.转发到程序集4.经过一个路由匹配–转发到匹配的控制器中5.匹配的action去处理RouteConfig中如果有多个路由,从上到下进行匹配,按照路由url中的正则表达式进行匹配,在命中url后找不到Controller或View则使用defaults中的默认参数publicstaticvoidRegisterRoutes(RouteCollectionroutes){

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

路由

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.net/162940.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 手机号码归属地数据库下载

    手机号码归属地数据库下载一份手机号归属地数据,共有174495条数据,包括中国移动,中国联通,中国电信的(包含152、186、188、189开头的手机号)。其中cardtype字段基本上没有什么用。因为可以通过办理某些业务就可以把如全球通卡转成神州行卡。对于这样的一份数据,你想要怎么利用?如果你只是想做一个手机号归属地查询的功能,那就浪费了。这个收数据库的主要功能就是通过手机号的前7位数字判断出手机号的归属城…

    2022年7月22日
    48
  • linux find命令详解_常用的shell命令

    linux find命令详解_常用的shell命令find命令格式:findpath-option[-print][-exec-okcommand]{}\;find命令的参数:path:要查找的目录路径。~表示$HO

    2022年7月28日
    3
  • centos6.8系统radius认证服务器的搭建流程

    centos6.8系统radius认证服务器的搭建流程Freeradius 服务器的搭建流程一 服务器方面的配置 1 安装 radius 服务器 数据库扩展插件预先安装 mysql 数据库 然后安装 freeradius 以及 freeradius 的数据库扩展插件 freeradius mysql yuminstall yfreeradiusf mysqlfreerad utils2 配置 freeradiu

    2025年7月7日
    2
  • Nginx 配置 HTTPS 完整过程[通俗易懂]

    Nginx 配置 HTTPS 完整过程[通俗易懂]配置站点使用https,并且将http重定向至https。1.nginx的ssl模块安装查看nginx是否安装http_ssl_module模块。$/usr/local/nginx/sbin/nginx-V![在这里插入图片描述](https://img-blog.csdnimg.cn/2018112610054317.png)如果出现configure…

    2022年7月14日
    15
  • 应用程序未启动_应用程序未能启动怎么办

    应用程序未启动_应用程序未能启动怎么办无法启动已发布的应用程序

    2022年4月20日
    61
  • PyCharm 配置 Git

    PyCharm 配置 Gitwindows下step1: 首先安装GitHubstep2: 找到git.exe的路径git.exe的默认路径如下:C:\Users\yourname\AppData\Local\GitHub\PortableGit_69703d1db91577f4c666e767a6ca5ec50a48d243\bin\git.exestep3: Pych

    2022年8月29日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号