MVC路由规则

来源:互联网 发布:midi键盘 知乎. 编辑:程序博客网 时间:2024/04/28 19:18

<1>

MVC的URL路由规则

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using System.Web.Routing;namespace MvcApplication{    public class RouteConfig    {        //用户将请求发送到后台的一个服务器,首先经过路由模块,路由模块会根据以下的路由规则对你请求的URL地址做一个解析,解析出你请求的控制器是哪个,Action方法是哪个,其他参数是什么。路由模块解析完后在到达具体的控制器,控制器再调用相关的Action方法,Action被调用之后,可能会访问我们的业务逻辑层Model。等业务逻辑层返回相关数据之后。控制器再把这个数据交给View视图【控制器交给View的数据我们一般叫做ViewModel】。View就将这个ViewModel数据做一个组装。生成HTML代码发送给用户。        public static void RegisterRoutes(RouteCollection routes)        {            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");            routes.MapRoute(                name: "Default",  //作为路由规则的key,因为可以有多条路由规则,所以这个key就是一条路由规则的唯一标识,是一定不能重复的。                url: "{controller}/{action}/{id}",//请求后台的Url规则,即URL地址的格式。{}就代表了一个占位符。{controller}就表示这个占位符里的内容是一个控制器的名字{action}就代表这个占位符里的内容是一个Action方法的名字。{id}就代表了参数,可以写,也可以不写。所以这条路由的URL地址的规则就是 http://localhost:2685/Home/Index                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } //默认值,也就是说当你没有给他Url规则的时候,他默认的控制器名字为“Home” Action名字为“Index” id的默认为:它会根据你后台这个id的类型会自动给你装配一个具体的默认值。比如说你后台的id是一个int类型,那我就给你装配一个0,如果你后台的id是一个string类型的,那我就给你装配一个""                //这个是一个约束,里面添加了一个控制器的约束和一个id参数的约束,让它们符合一个规定的正则表达式。                //constraints: new { controller=@"^\w+$",id=@"^\d+$"},                //限定我们搜索的这个Mvc控制器必须在某个名称控件下去搜索。这样的话就能够比较快的搜索到我们要的控制器                //这里是限定在MvcRazorDome.Controllers名称控件下去搜索控制器                //namespaces:new string[]{"MvcRazorDome.Controllers"}            );            //---------------------------------------------------------------第二个路由规则            routes.MapRoute(                name: "Default2",                url: "{controller}-{action}/{id}",                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }                //constraints: new { controller = @"^\w+$", id = @"^\d+$" },                //namespaces: new string[] { "MvcRazorDome.Controllers" }            );                   }    }}


0 0
原创粉丝点击