MVC之路由

1.路由规则理解:

在MVC项目中,路由是一个独立的模块,需要引入System.Web.Routing ,路由的作用就是确定控制器和行为,同时确定其他的参数,然后将这些信息传递个相应的控制器和行为。

  public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }

我们可以使用MapRoute方法定义我们自己的路由规则,这个方法存在着很多的重载,可以根据需求进行添加,自己定义的Route,越详细 的应该放在最前面,因为路由规则一但匹配到之后,就不会继续往下走了。

  public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(name: "first", url: "{controller}-{action}-{id}-{price}}"
                , defaults: new {controller="Hotel",action="Index",id=1,price=3 }
                );

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });

            routes.MapRoute(name: "首页", url: "{*values}"
                , defaults: new {controller="Hotel",action="Index" }

            );
        }
    }

2.MapRoute方法中的参数

1.name:表示路由规则的名称,这个名称必须是唯一的,否则将会报错,默认情况的名字是Default

2.url:表示路由的规则,可变的参数用‘{}’括起来,同时对于路由规则中,通过自己定义的路由规则,可以实现参数的传递,代替?key=**,同时可以在Action中实现自动的绑定,但是参数过多的话,将会比较混乱,同时为了SEO的优化,最好不要超过三级

3.defaults:设置路由规则中的默认值,可以传递一个匿名类型,给相应的变量赋值。

4.constraints:对规则进行约束,可以用一个匿名类型,给相应的参量进行约束。如:controller=“^[a-z]+$”

 3.路由对象:

Route(路由规则):存放一条路由的规则,需要指定路由格式、默认值、处理器三个值
RouteData(路由数据):当前请求上下文匹配路由规则而得到的一个对象,可以在Action中通过RouteData.GetRequestString(“controller/action”)获取本此请求中控制器或行为的真实名称,可以获取相应的路由数据。
RouteCollection(路由集合):存放路由规则的集合Collection<RouteBase>,一个MVC项目中,可以配置多个路由规则,按照键值对的格式存储到路由集合中
RouteTable(路由表):类中包含静态的RouteCollection属性,完成所有路由规则的全局存储,在Global中完成注册

4.总结:

1.路由规则可以注册多条
2.路由规则的名称不能重复
3.路由规则有顺序,并且按照顺序进行匹配;建议子频道的路由规则配置在前面
4.路由规则可以设置约束

时间: 2024-11-13 05:36:24

MVC之路由的相关文章

MVC的路由设置【转】

转,MVC的路由设置. 后端获取路由里面action的参数,函数需要设置相同的参数名称才行. routes.MapRoute( "Default", "{controller}/{action}/{id}", new { action = "Index", id = "0" }, new { controller = @"^\w+", action = @"^\w+", id = @&q

asp.net MVC 5 路由 Routing

ASP.NET MVC ,一个适用于WEB应用程序的经典模型 model-view-controller 模式.相对于web forms一个单一的整块,asp.net mvc是由连接在一起的各种代码层所组成. 最近又接触了关于asp.net mvc的项目,又重拾以前的记忆,感觉忘了好多,特此记录. 首先,来说说路由Routing. ASP.NET MVC 不再是要依赖于物理页面了,你可以使用自己的语法自定义URL,通过这些语法来指定资源和操作.语法通过URL模式集合表达,也称为路由. 路由是代表

mvc url路由参数的加密和解密

查看某个信息的时候一般会在url上加上该信息在数据库中对应的主键id(而且一般是自增的) url是这样子的 xxxDetail/1 , 虽然对于我们开发人员来说可以这种显式的数据库主键会方便调试过程,但是这种url的安全性比较低 所以想将这类id给加密了, 当然也不想在需要此处理的地方 添加上加密或解密的代码; 基于mvc的路由机制我们可以很方便的将 输出的url和输入的url参数进行自动的加密和解密: 一.通过扩展UrlHelper方法, 对参数进行加密 1 public static cla

[学习笔记] 理解ASP.NET MVC的路由系统

引言 路由,正如其名,是决定消息经由何处被传递到何处的过程.也正如网络设备路由器Router一样,ASP.NET MVC框架处理请求URL的方式,同样依赖于一张预定义的路由表.以该路由表为转发依据,请求URL最终被传递给特定Controller的特定Action进行处理.而在相反的方向上,MVC框架的渲染器同样要利用这张路由表,生成最终的HTML页面并返回URL.所以,理解整个ASP.NET MVC的路由系统,有两个必须出现的关键元素:Controller与Action,有两个方向的操作:传入的

[Spring MVC] - 地址路由使用(一)

常用的一些Spring MVC的路由写法以及参数传递方式. 参考引用: http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/mvc.html 这是一些测试例子: package com.my.controller; import java.io.PrintWriter; import java.util.Date; import javax.servlet.http.HttpServletRequest;

MVC 伪静态路由

定义URL @Html.ActionLink("html", "Get_Page", new { id=1}) 这URL是调用本控制器下面的的Get_Page方法,传参id 定义路由 routes.MapRoute(                name:"UrlHtml",                url:"{controller}/{action}/{id}.html"                ); 注册路由

MVC框架-路由分发总结

原网址将会不断更新 :   作程的技术博客  <MVC框架-路由分发总结> it.zuocheng.net 路由的类型 Route Type 无路由 No Route HTTP请求直接定位到特定的脚本文件执行.比如http://domain/news/latest.php 动态路由 依据某种动态规则进行路由和分发,一般有如下形式: 强约束URL 将Class,function 等信息隐藏在url中,请求来时,依据规则解析URL就可以定位Action函数,比如http://domain/mode

MVC的路由

MVC的路由系统有两个功能: 1.考察输入URL.通过用户输入的URL推断用户需要调用的控制器和动作. 2.生成输出URL.这里的URL是指试图渲染HTML中生成的URL,当用户点击这些URL时,路由能够推断出调用的特定动作. 当处理一个请求时,路由系统将这个请求与一个模式片段进行匹配,然后从这个URL中为这个模式中定义的片段变量提取出相应的值.片段变量使用花括号表示("{"和"}")表示例如http://mywebsite.com/home/index这个请求地址

Java-Spring MVC:JAVA之常用的一些Spring MVC的路由写法以及参数传递方式

ylbtech-Java-Spring MVC:JAVA之常用的一些Spring MVC的路由写法以及参数传递方式 1.返回顶部 1. 常用的一些Spring MVC的路由写法以及参数传递方式. 这是一些测试代码: package com.my.controller; import java.io.PrintWriter; import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servl

asp.net core 系列 6 MVC框架路由(下)

一.URL 生成 接着上篇讲MVC的路由,MVC 应用程序可以使用路由的 URL 生成功能,生成指向操作的 URL 链接. 生成 URL 可消除硬编码 URL,使代码更稳定.更易维护. 此部分重点介绍 MVC 提供的 URL 生成功能,并且仅涵盖 URL 生成工作原理的基础知识. IUrlHelper 接口用于生成 URL,是 MVC 与路由之间的基础结构的基础部分. 在控制器.视图和视图组件中,可通过 Url 属性找到 IUrlHelper 的实例. // // mvc 框架的Controll