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 }
            );
        }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • SpringBoot❤SpringClould常用注解史诗级汇总[通俗易懂]

    SpringBoot❤SpringClould常用注解史诗级汇总[通俗易懂]什么是注解?什什么是注解Java注解是附加在代码中的⼀一些元信息,⽤用于⼀一些⼯工具在编译、运⾏行行时进⾏行行解析和使⽤用,起到说明、配置的功能注解本质上继承Annotation接⼝口,我们可以通过反射获取注解的相关信息,从⽽而做些逻辑操作springboot⾥里里⾯面⼤大量量使⽤用了了注解,@Controller、@RestController、@Service、@Autowire等一、SpringBoot注解1.1.@SpringBootApplication包含@Confi

  • 线上的项目如何快速定位问题

    线上的项目如何快速定位问题线上的项目如何快速定位问题

  • Github教程_git安装及使用教程

    Github教程_git安装及使用教程https://www.cnblogs.com/xuxiaoxia/p/9482454.html1、首先要先在github的官网注册一个属于自己的账号。https://github.com/2、注

  • C语言分苹果_数据结构:使用C语言

    C语言分苹果_数据结构:使用C语言1、题目描述果园里有堆苹果,N(1<N<9)只熊来分。第一只熊把这堆苹果平均分为N份,多了一个,它把多的一个扔了,拿走了一份。第二只熊把剩下的苹果又平均分成N份,又多了一个,它同样把多的一个扔了,拿走了一份,第三、第四直到第N只熊都是这么做的,问果园里原来最少有多少个苹果?示例和说明如下:2、解题思路我的方法很简单就是从最小的可能的数开始,一个一个尝试,满足了测试的要求之后

    2022年10月10日
  • OpenResty 最佳实践学习–实战演习笔记(3)

    本篇总结来自 OpenResty(Nginx+Lua)开发入门 ,基本的代码没有改动,主要是自己实际动手操作,测试 Nginx Lua API !我们需要接收请求、处理并输出响应。而对于请求我们需要获取如请求参数、请求头、Body体等信息;而对于处理就是调用相应的Lua代码即可;输出响应需要进行响应状态码、响应头和响应内容体的输出。因此我们从如上几个点出发即可。接收请求我自己进行测试,在我安装的

  • mysql命令备份

    mysql命令备份mysql命令备份

发表回复

您的电子邮箱地址不会被公开。

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