鍍金池/ 教程/ Java/ MVC框架 - 路由引擎
MVC框架 - 異常處理
MVC框架架構(gòu)
MVC框架 ASP.NET表單
MVC框架 - 高級(jí)示例
MVC框架 - 捆綁
MVC框架 - 文件夾
MVC框架 - 控制器
MVC框架 - 模型
MVC框架 - 視圖
MVC框架 - 路由引擎
MVC框架 - 第一個(gè)應(yīng)用程序
MVC框架 - AJAX支持
MVC框架教程
MVC框架 - 布局
MVC框架 - 動(dòng)作過(guò)濾器

MVC框架 - 路由引擎

路由介紹

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

為了處理MVC的URL,ASP.NET平臺(tái)使用路由系統(tǒng),它可以創(chuàng)建想要的網(wǎng)址任何模式,并表示他們?cè)谝粋€(gè)清晰,簡(jiǎn)明的方式。在MVC每個(gè)路由包含一個(gè)特定的URL模式。這個(gè)URL模式相比傳入請(qǐng)求的URL,如果URL與此模式匹配,它用于由路由引擎來(lái)進(jìn)一步處理請(qǐng)求。

MVC路由URL格式

要了解MVC路由,請(qǐng)考慮以下地址URL:

http://servername/Products/Phones

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

{controller}/{action}

MVC框架自動(dòng)評(píng)估第一段作為控制器名稱,第二段作為控制器內(nèi)的動(dòng)作。 需要注意的是,如果控制器的名稱是ProductsController,只提Prodcuts顯示路由的URL。 MVC框架自動(dòng)理解Controller后綴。

創(chuàng)建一個(gè)簡(jiǎn)單的路由

路由定義在RouteConfig.cs文件,該文件在App_Start項(xiàng)目文件夾內(nèi)。

mvc_route_config

這個(gè)文件中的代碼如下:

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

當(dāng)應(yīng)用程序啟動(dòng)時(shí)RegisterRoutes方法被Global.ascx調(diào)用。Global.ascx在Application_Start方法中調(diào)用MapRoute功能,設(shè)置默認(rèn)的控制器和動(dòng)作(控制器類中的方法)。

要修改上述默認(rèn)映射在我們的例子中,修改下面的代碼行:

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

該設(shè)置將選擇的ProductsController并調(diào)用里面的Phone方法。同樣,如果還有其他的方法,如ProductsController內(nèi)部的Electronics方法,該網(wǎng)址將是:

http://servername/Products/Electronics