位置:首頁 > Web開發 > MVC框架教學 > MVC框架 - 路由引擎

MVC框架 - 路由引擎

路由介紹

ASP.NET MVC路由允許使用URLs描述性的用戶行為,並更容易被用戶理解。與此同時,路由可以用來隱藏其顯示給最終用戶的數據。例如,在不使用路由的應用程序,用戶將顯示的URL作為 http://myapplication/Users.aspx?id=1 這將符合所有MyApplication路徑內的文件Users.aspx和發送ID為1。一般來說,我們不希望這樣的顯示文件名給最終的用戶。

為了處理MVC的URL,ASP.NET平台使用路由係統,它可以創建想要的網址任何模式,並表示他們在一個清晰,簡明的方式。在MVC每個路由包含一個特定的URL模式。這個URL模式相比傳入請求的URL,如果URL與此模式匹配,它用於由路由引擎來進一步處理請求。

MVC路由URL格式

要了解MVC路由,請考慮以下地址URL:

http://servername/Products/Phones

另外,在上述的URL,Products是第一段,Phone可表示在下麵的格式第二段:

{controller}/{action}

MVC框架自動評估第一段作為控製器名稱,第二段作為控製器內的動作。 需要注意的是,如果控製器的名稱是ProductsController,隻提Prodcuts顯示路由的URL。 MVC框架自動理解Controller後綴。

創建一個簡單的路由

路由定義在RouteConfig.cs文件,該文件在App_Start項目文件夾內。

mvc_route_config

這個文件中的代碼如下:

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

當應用程序啟動時RegisterRoutes方法被Global.ascx調用。Global.ascx在Application_Start方法中調用MapRoute功能,設置默認的控製器和動作(控製器類中的方法)。

要修改上述默認映射在我們的例子中,修改下麵的代碼行:

 defaults: new { controller = "Products", action = "Phones", id =    UrlParameter.Optional }

該設置將選擇的ProductsController並調用裡麵的Phone方法。同樣,如果還有其他的方法,如ProductsController內部的Electronics方法,該網址將是:

http://servername/Products/Electronics