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();
②对应路由控制器上添加[Route("Home/About")],对应路由Controller名称,路由方法名称;
1.2.ASP.NET MVC5特性路由—传值
特性路由传参需要在Controller控制器的方法上注解上加上{参数名}
注意:在访问的时候需要在url上面多加一个name实际传入的参数,如Home/About/jackson,才能访问到对应的路由。
多个参数传递:/{name}/{name2}…
1.3.ASP.NET MVC5特性路由—控制器路由
可以直接在控制器上加上”Home/{action}”即可访问到对应的每个控制器方法;
1.4.ASP.NET MVC5特性路由—路由约束
该约束限制id只能是int类型的变量,如果传入其它类型的string则访问不到对应的路由,会直接报错。
1.5.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报错的问题: