1. 程式人生 > 實用技巧 >【.NET框架】—— ASP.NET MVC5路由基礎(五)

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

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報錯的問題: