乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ASP.NET MVC 的URL路由

       修行的嘟嘟 2012-08-07

      ASP.NET MVC 的URL路由介紹

      在這個教程中,向你介紹每個ASP.NET MVC一個重要的特點叫做URL路由。URL路由模塊是負責映射從瀏覽器請求到特定的控制器動作。

      在教程的第一部分,你將學習標準路由表如何映射到控制器的動作。在教程第二部分,你將學習如何修改默認路由表成為自定義路由。

      使用默認路由表

      當你創(chuàng)建一個新的ASP.NET MVC 應(yīng)用程序,應(yīng)用程序已經(jīng)配置了默認的URL路由。URL路由在兩個地方設(shè)置。

      第一,URL路由配置在你的應(yīng)用程序WEB配置文件中(Web.config文件)。文件中有四個有關(guān)路由的配置節(jié):system.web.httpModules節(jié),system.web.httpHandlers節(jié),system.webserver.modules節(jié),和system.webserver.handlers節(jié)。小心不要刪除這些配置節(jié),因為沒有這些配置節(jié)路由將不在工作。

      第二,更為重要的是,一個路由表在應(yīng)用程序的Global.asax文件中創(chuàng)建。Global.asax文件是一個特別的文件,它包含了ASP.NET應(yīng)用程序生命周期事件處理。當Application Start事件開始,路由被創(chuàng)建。

      圖1是一個ASP.NET MVC應(yīng)用程序的默認Global.asax文件。

       

      圖 1 – Global.asax.cs

      當一個ASP.NET MVC應(yīng)用程序第一次運行時, Application_Start()方法被調(diào)用。這個方法,又調(diào)用RegisterRoutes()方法,RegisterRoutes()方法創(chuàng)建了路由表。

      默認的路由本包含一個路由(命名Default).默認路由第一段URL映射到一個控制器名字,第二段URL映射到一個動作,第三段映射到一個參數(shù)叫Id.

      想象你在瀏覽器地址欄輸入以下URL:

      /Home/Index/3

      默認路由映射以下這些參數(shù):

      controller = Home

      action = Index

      id = 3

      當你請求URL /Home/Index/3,以下代碼會被執(zhí)行:

      HomeController.Index(3)

      默認路由包括默認的三個參數(shù)。如果你提供一個控制器,那默認控制器參數(shù)值就是Home.如果你不提供一個動作,那默認動作參數(shù)的值就是Index.最后,如果你不提供一個id,那id參數(shù)默認是一個空字符串。

      讓我們看一些默認路由如何映射URL到控制器動作的示例。想象你在瀏覽器地址欄輸入以下URL:

      /Home

      因為默認路由參數(shù),這個URL會引起HomeController 類的Index()方法如圖2被調(diào)用。

      圖2 – HomeController.cs

      在圖2中, HomeController類包含一個叫Index()的方法,它接受單個叫Id的參數(shù)。URL /Home 引起值為空字符串Id參數(shù)的 Index()被調(diào)用。

      因為ASP.NET MVC框架調(diào)用控制器動作這個方式,the URL /Home 也匹配圖3中的HomeController類 Index()方法。

      圖 3 – HomeController.cs (無參數(shù)的Index action)

      圖3中這個Index()方法不接受任何參數(shù)。URL /Home 將引起Index()的方法被調(diào)用。URL /Home/Index/3 也調(diào)用這個方法。(Id是被忽略的)

      URL /Home 也匹配圖4 中HomeController類Index()方法

      圖 4 – HomeController.cs (可空參數(shù)Index action)

      圖4中, Index()有一個整型方法. 因為參數(shù)是可空類型 (值能夠為空), Index() 調(diào)用不能產(chǎn)生錯誤。

      最后,圖5中調(diào)用Index(),URL /Home引起一個異常從Id參數(shù)不是可空類型參數(shù),如果你嘗試調(diào)用Index()方法,你得來以一個錯誤頁面:

      圖5 – HomeController.cs (Index action with)

      URL /Home/Index/3, 另一方面, 圖5中控制器 Index 動作是可以工作的。The 請求 /Home/Index/3 引發(fā)帶一個值為3 Index() 方法被調(diào)用。

       

      創(chuàng)建自定義路由

      對于許多簡碟的ASP.NET MVC 應(yīng)用程序,默認路由表足夠了。但是,你可能發(fā)現(xiàn)你有特別路由的需要。在這個案例中,你能創(chuàng)建一個自定義路由。

      想象下,例如,你寫一個BLOG應(yīng)用程序,你可能要處理像這樣的請求:

      /Archive/12-25-2009

      當一個用戶發(fā)起這個請求,你要返回一個符合12/25/2009日期的BLOG。因此處理這樣的請求,你需要創(chuàng)建一個自定義路由。

      圖6中Global.asax文件包含一個新的自定義路由,叫做Blog,處理像這樣/Archive/entry date的請求。

      圖 6 – Global.asax (自定義路由)

      路由表中你增加的路由順序是很重要的。我們自定義Blog路由是增加在默認路由之前的。假如你搞反了,那默認路由將永遠替代調(diào)用自定義路由。

      自定義Blog路由匹配任何/Archive/開始請求,所以它匹配所有以下URLs:

      /Archive/12-25-2009

      /Archive/10-6-2004

      /Archive/apple

      這個自定義路由映射進來的請求到一個名叫Archive控制器同時調(diào)用Entry()方法,當Entry()方法被調(diào)用時,進入日期轉(zhuǎn)成一個名叫entryDate參數(shù)。

      在圖7中 你能使用控制器與BLOG自定義路由。

      圖 7 – ArchiveController.cs

      注意圖7中的Entry()方法接受一個DateTime 類型的參數(shù).ASP.NET MVC 框架是智能的,它能從URL的DateTime的值自動的轉(zhuǎn)換為entry date。如果entry date從URL不能轉(zhuǎn)換為DateTime,將引出錯誤。

      總結(jié)

      教程的目的提供你關(guān)于URL路由一段簡短的介紹。第一,我們檢驗了你拿到一個新的ASP.NET MVC 應(yīng)用程序的默認路由表。你學習到了默認路由表是如何把URL映到控制器動作的。

      接下來,你學習了如何創(chuàng)建一個自定義路由表。你學習了如何在Global.asax文件中增加一個自定義路由表描述blog進入點。我們討論如何映射請求blog進入點到一個名叫ArchiveController的控制器名叫Entry()的動作。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多