1、RouteAttribute概述
RouteAttribute的命名空間是System.Web.Mvc,區別與web api的RouteAttribute(它的命名空間是System.Web.Http)
默認情況下MVC的特征路由(RouteAttribute)功能是關閉的,需要手動啟動,啟動方式:
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapMvcAttributeRoutes();//啟用Attribute路由 routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }
2、RouteAttribute簡單例子
[Route("list.html")] [Route("list_{category}.html")] [Route("list_{category}_p{page:int}.html")] public void ArticleList(string category, int page = 1) { var title = string.IsNullOrEmpty(category) ? "所有資訊" : category + "資訊"; Response.Write(string.Format("分類:{0},頁碼:{1}<br/>我們都是好孩子!!!", title, page)); }
Route("list.html")匹配地址:http://localhost:2000/list.html
Route("list/{category}.html")匹配地址:http://localhost:2000/list/news.html
Route("list/{category}/{page:int}.html")匹配地址:http://localhost:2000/list/bews/2.html