一起幫忙解決難題,拯救IT 人的一天 | mvc route
前言網站伺服器大多都是透過URL方式作為進入點,因此對路由的解析就變得格外重要,本篇將介紹ASP.NetCore路由的設定方式。同步發表於個人點部落-[鐵人賽Day06]ASP.NetCoreMVC進化之路-路由(Route)[1]Route在ASP.NetMVC5的專案中,如果要針對路由進行設定,我們會針對App_Start底下的檔案進行設定。MVC的話會對應到RouteConfig.cs。WebApi則使用WebApiConfig.cs進行設定。在ASP.NetCore中統一將路由(Route)以Middleware的形式進行包裝,我們可以在Startup中指定MVC全域性的預設路由。//app.UseMvcWithDefaultRoute();app.UseMvc(routes...
前言網站伺服器大多都是透過URL方式作為進入點,因此對路由的解析就變得格外重要,本篇將介紹ASP.Net Core 路由的設定方式。
同步發表於個人點部落 - [鐵人賽Day06] ASP.Net Core MVC 進化之路 - 路由(Route)[1]
Route在ASP.Net MVC5的專案中,如果要針對路由進行設定,我們會針對App_Start底下的檔案進行設定。MVC的話會對應到RouteConfig.cs。WebApi則使用WebApiConfig.cs進行設定。
在ASP.Net Core中統一將路由(Route)以Middleware的形式進行包裝,我們可以在Startup中指定MVC全域性的預設路由。
//app.UseMvcWithDefaultRoute(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); });上面這兩個方式實際執行的結果是一樣的,如果不需要特別修改的話可以使用上方的UseMvcDefaultRoute()即可。但如果想修改細部內容的話可使用第二個方式進行調整。
在routes.MapRoute()中name表式這條路由規則的名稱(只是名字而已啦),路由的規則會定義在template中,controller跟action後面加等號(=)表示預設的值,id後面加個問號(?)則表optional(就是可給可不給)。
區域性的路由設定沿用原本的[Route]Attribute,在優序上[Route]大於在Startup中的MapRoute,Route裡面字串使用中括號[]可使用保留字(Controller及Action),路由會按照Controller及Action名稱自動對應。
[Route("MyHome/[Action]")] public class HomeController : ...