.Net MVC中的路由

來源:互聯網
上載者:User

標籤:style   blog   color   檔案   art   io   

MVC中的URL也就是路由,不用通過路徑訪問實際的物理檔案而達到向使用者展示介面。

URL的路由功能 一方面正向 映射到Controller和Action,根據使用者輸入的URL觸發相應的控制器和對應方法,另一方面則反向映射並構造出URL,根據控制器和行為構造出URL以供程式調用。

系統初次開機將會載入Global.asax檔案的Application_Start方法並去執行RegisterRoutes()構造器

 protected void Application_Start()        {            AreaRegistration.RegisterAllAreas();            WebApiConfig.Register(GlobalConfiguration.Configuration);            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);            RouteConfig.RegisterRoutes(RouteTable.Routes);                                                BundleConfig.RegisterBundles(BundleTable.Bundles);            AuthConfig.RegisterAuth();                   }

 

 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 }            );        }

RegisterRoutes()方法建立了預設的路由表且包含了一個預設路由home/index,route.MapRoute()方法根據設定的屬性自動完成建立Route的執行個體。並命名為"Default",訪問格式為"{controller}/{action}/{id}"並提供了一個預設的訪問路由路徑,"home/inde"。將Home控制器指向url中的Controller,行為Index指向action並提供了一個預設的ID參數。之所以把路由的添加放在了Global.asax檔案中,是為了確保在程式啟用時,將設定的路由填充到預設的路由表中。

路由表的設定格式

 
有效路由定義 舉例
{Controller}/{action}/{id} /product/show/beverages
{table}/Details.aspx /product/Details.aspx
blog/{action}/{entry}    

 /blog/show/123

{reporttype}/{year}/{month}/{day} /sales/2008/1/5

 

 

 

 

當處理來自頁面來自/product/show的請求時,MVC架構把product賦值給了參數Controller  把Show賦值給了參數action,並把null賦值給了參數ID。

MVC之所以能完成上述一系列操作,是因為RouteCollection構造器調用了一些的介面去不斷的反射和映射傳入和輸出的Route。詳情可查看RouteCollection內建屬性。這裡不再做闡述。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.