【.NET框架】—— ASP.NET MVC5路由基础(五)

  • A+
所属分类:.NET技术
摘要

路由是实现资源交互访问的接口,路由匹配传入请求,并把这些请求映射到控制器操作,构造传出的URL,用来响应控制器操作。


1.1.ASP.NET MVC5路由概念及设置

路由是实现资源交互访问的接口,路由匹配传入请求,并把这些请求映射到控制器操作,构造传出的URL,用来响应控制器操作。

路由的分类:

  • 传统路由
  • 特性路由

传统路由:

传统路由的设置方式,本来就有,在app_Start/RouteConfig.cs中集中设置;

namespace WebApplication1 {     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 }             );         }     } }

特性路由:

在控制器类或操作方法中使用声明式的特性的选项,称为特性路由。

需要在app_Start/RouteConfig.cs中做设置,修改RegisterRoutes方法:

①设置routes.MapMvcAttributeRoutes();

 【.NET框架】——  ASP.NET MVC5路由基础(五)

 

②对应路由控制器上添加[Route("Home/About")],对应路由Controller名称,路由方法名称;

【.NET框架】——  ASP.NET MVC5路由基础(五)

 

1.2.ASP.NET MVC5特性路由—传值

特性路由传参需要在Controller控制器的方法上注解上加上{参数名}

【.NET框架】——  ASP.NET MVC5路由基础(五)

 

注意:在访问的时候需要在url上面多加一个name实际传入的参数,如Home/About/jackson,才能访问到对应的路由。

多个参数传递:/{name}/{name2}…

1.3.ASP.NET MVC5特性路由—控制器路由

可以直接在控制器上加上”Home/{action}”即可访问到对应的每个控制器方法;

【.NET框架】——  ASP.NET MVC5路由基础(五)

 

1.4.ASP.NET MVC5特性路由—路由约束

【.NET框架】——  ASP.NET MVC5路由基础(五)

 

该约束限制id只能是int类型的变量,如果传入其它类型的string则访问不到对应的路由,会直接报错。

1.5.ASP.NET MVC5特性路由—路由默认值

【.NET框架】——  ASP.NET MVC5路由基础(五)

 

这样配置就告诉MVC框架当前控制器就是初始化控制器,Index()方法就是初始化路由的视图。

这里需要设置一些界面默认的参数模式,详情请参见博客:

https://www.cnblogs.com/fumj/p/4887689.html

https://www.cnblogs.com/wningning/archive/2013/03/26/2982079.html

否则会出现 IIS 403报错的问题:

【.NET框架】——  ASP.NET MVC5路由基础(五)