路由是實現資源交互訪問的接口,路由匹配傳入請求,並把這些請求映射到控制器操做,構造傳出的URL,用來響應控制器操做。html
路由的分類:app
傳統路由:框架
傳統路由的設置方式,原本就有,在app_Start/RouteConfig.cs中集中設置;url
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 } ); } } }
特性路由:spa
在控制器類或操做方法中使用聲明式的特性的選項,稱爲特性路由。3d
須要在app_Start/RouteConfig.cs中作設置,修改RegisterRoutes方法:code
①設置routes.MapMvcAttributeRoutes();htm
②對應路由控制器上添加[Route("Home/About")],對應路由Controller名稱,路由方法名稱;blog
特性路由傳參須要在Controller控制器的方法上註解上加上{參數名}接口
注意:在訪問的時候須要在url上面多加一個name實際傳入的參數,如Home/About/jackson,才能訪問到對應的路由。
多個參數傳遞:/{name}/{name2}…
能夠直接在控制器上加上」Home/{action}」便可訪問到對應的每一個控制器方法;
該約束限制id只能是int類型的變量,若是傳入其它類型的string則訪問不到對應的路由,會直接報錯。
這樣配置就告訴MVC框架當前控制器就是初始化控制器,Index()方法就是初始化路由的視圖。
這裏須要設置一些界面默認的參數模式,詳情請參見博客:
http://www.javashuo.com/article/p-oapumbyb-ed.html
https://www.cnblogs.com/wningning/archive/2013/03/26/2982079.html
不然會出現 IIS 403報錯的問題: