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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JavaScript与Java的关系(联系与区别)

    JavaScript与Java的关系(联系与区别)JavaScript和Java是两种不一样的语言,但是它们之间存在联系。背景方面Javascript(1995年,Netscape公司雇佣了程序员BrendanEich开发这种网页脚本语言)最初名字叫做Mocha,1995年9月改为LiveScript。12月,Netscape公司与Sun公司(Java语言的发明者和所有者)达成协议,后者允许将这种语言叫做JavaScript。这样一来,Netsc

    2022年7月7日
    19
  • ITIL该研究的结论(互联网思维的结合)

    ITIL该研究的结论(互联网思维的结合)

    2022年1月8日
    46
  • 韩顺平 2021零基础学Java 学习笔记(1)(自用)[通俗易懂]

    韩顺平 2021零基础学Java 学习笔记(1)(自用)[通俗易懂]目录第2章Java概述第3章变量第4章运算符第5章程序控制结构第6章数组、排序和查找第7章面向对象编程(基础部分)第8章面向对象编程(中级部分)第2章Java概述2.1Java重要特点Java语言是面向对象的(oop)Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证Java语言是跨平台性的。[即:一个编译好的.class文件可以在多个系统下运行,这种特性称为跨平台]Jav

    2022年10月10日
    2
  • 头文件cstring、string、string.h的区别「建议收藏」

    头文件cstring、string、string.h的区别「建议收藏」头文件cstring、string、string.h的区别<string>是C++标准库头文件,使用stirng类型必须首先包含string头文件,用于字符串操作,string类型可以进行+、=、+=、>等运算。std::string类实际上是STL模板类std::basic_string的具体化。#include<string>usingnamespacestd;strings;<cstring>是C标准库头文件<strin

    2025年9月3日
    5
  • linux修改文件名字_linux搜索文件名命令

    linux修改文件名字_linux搜索文件名命令在Linux环境下修改文件名可以有不同的命令方式,比如rename、mv都可以进行修改,如果用户正在了解这方面的知识,可以阅读下文了解Linux修改文件名以及批量修改文件名的方法。对于单个的文件,可以直接使用命令,那如果有大量的类似格式的文件名需要修改成其他格式的,该如何呢?比如某次测试后,保存的文件为Lan1.txt,Lan2.txt,……Lan100.txt这一百个文件需要在前面添加前缀变成…

    2025年8月7日
    2
  • Android开发环境配置

    Android开发环境配置本文是Android开发环境的搭建教程,最近用到了Android开发,对环境搭建做个总结。1、安装JDK首先去官网下载JDK。JavaSeSdk下载地址:https://www.oracle.com/java/technologies/javase-downloads.html选择Windows版本。下载完成后,直接双击安装,使用默认路径C:\ProgramFiles\Java\jdk-17.0.2即可。然后配置环境变量。然后,运行CMD,输入java-version。如上图,看到

    2022年7月23日
    9

发表回复

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

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