同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁 優(yōu)化推廣 從零開始學(xué)習(xí) ASP.NET MVC 1.0 (二) 識別URL的Routing組件

從零開始學(xué)習(xí) ASP.NET MVC 1.0 (二) 識別URL的Routing組件

來源: | 時間:2010/8/9 14:40:00 |

一.摘要

本篇文章從基礎(chǔ)到深入的介紹ASP.NET MVC中的Routing組件. Routing翻譯過來是"路由選擇", 負責(zé)ASP.NET MVC的第一個工作:識別URL, 將一個Url請求"路由"給Controller.

 

二.承上啟下

第一篇文章中我們已經(jīng)學(xué)會了如何使用ASP.NET MVC, 雖然其中還有很多的細節(jié)沒有深入了解, 但是對基本的處理流程已經(jīng)有了認識:來了一個Url請求, 從中找到Controller和Action的值, 將請求傳遞給Controller處理. Controller獲取Model數(shù)據(jù)對象, 并且將Model傳遞給View, 最后View負責(zé)呈現(xiàn)頁面.

而Routing的作用就是負責(zé)分析Url, 從Url中識別參數(shù), 如圖:

image

這一講就讓我們細致的了解System.Web.Routing及其相關(guān)的擴展知識.

三.Routing的作用

第一講中實例的首頁地址是: localhost/home/index

我們發(fā)現(xiàn)訪問上面的地址, 最后會傳遞給 HomeController中名為index的action(即HomeController類中的index方法).

當然服務(wù)器端不會自己去實現(xiàn)這個功能,  關(guān)鍵點就是在Global.asax.cs文件中的下列代碼:

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
            );

        }

        protected void Application_Start()
        {
            RegisterRoutes(RouteTable.Routes);
        }

 

回來看我們的Url: localhost/home/index

localhost是域名, 所以首先要去掉域名部分: home/index

對應(yīng)了上面代碼中的這種URL結(jié)構(gòu): {controller}/{action}/{id}

因為我們建立了這種Url結(jié)構(gòu)的識別規(guī)則, 所以能夠識別出 Controller是home, action是index, id沒有則為默認值"".

這就是Routing的第一個作用:

1.從Url中識別出數(shù)據(jù).比如controller,action和各種參數(shù).

如果跟蹤程序, 接下來我們會跳轉(zhuǎn)到HomeController中的Index()方法.  這是Routing內(nèi)部為實現(xiàn)的第二個作用:

2.根據(jù)識別出來的數(shù)據(jù), 將請求傳遞給Controller和Action.

但從實例中我們并不知道Routing如何做的這部份工作.第五部分我做了深入講解.

四.Routing的使用

在分析Routing的實現(xiàn)原理前, 先學(xué)習(xí)如何使用Routing為ASP.NET MVC程序添加路由規(guī)則.

1. 使用MapRoute()方法.

這是最簡單的為ASP.NET MVC添加識別規(guī)則的方法.此方法有如下重載:

MapRoute( string name, string url);
MapRoute( string name, string url, object defaults);
MapRoute( string name, string url, string[] namespaces);
MapRoute( string name, string url, object defaults, object constraints);
MapRoute( string name, string url, object defaults, string[] namespaces);
MapRoute( string name, string url, object defaults, object constraints, string[] namespaces);
 

name參數(shù):

規(guī)則名稱, 可以隨意起名.當時不可以重名,否則會發(fā)生錯誤:
路由集合中已經(jīng)存在名為“Default”的路由。路由名必須是唯一的。

url參數(shù):

url獲取數(shù)據(jù)的規(guī)則, 這里不是正則表達式,  將要識別的參數(shù)括起來即可, 比如: {controller}/{action}

最少只需要傳遞name和url參數(shù)就可以建立一條Routing(路由)規(guī)則.比如實例中的規(guī)則完全可以改為:

            routes.MapRoute(
                    "Default",
                    "{controller}/{action}");

defaults參數(shù):

url參數(shù)的默認值.如果一個url只有controller: localhost/home/

而且我們只建立了一條url獲取數(shù)據(jù)規(guī)則: {controller}/{action}

那么這時就會為action參數(shù)設(shè)置defaults參數(shù)中規(guī)定的默認值. defaults參數(shù)是Object類型,所以可以傳遞一個匿名類型來初始化默認值:

new { controller = "Home", action = "Index" }

服務(wù)熱線

153 8323 9821

功能和特性

價格和優(yōu)惠

網(wǎng)站和維護

推廣和優(yōu)化

微信服務(wù)號