ASP.NET 路由

來源:互聯網
上載者:User

ASP.NET 路由使您可以使用不必映射到網站中特定檔案的 URL。由於 URL 不必映射到檔案,所以可以在 Web 應用程式中使用 URL,這些 URL 是描述性的使用者操作,因此更易於被使用者理解。

在一個不使用路由的 ASP.NET 應用程式中,對 URL 的傳入請求通常映射到磁碟上的物理檔案,如 .aspx 檔案。在 ASP.NET 路由中,您可以定義 URL 模式,該模式包含在處理 URL 請求時使用的值的預留位置。在運行時,應用程式名稱後面的 URL 部分根據您所定義的 URL 模式分析為離散值。

ASP.NET 路由不同於其他 URL 重寫方案。URL 重寫通過在將請求發送到網頁之前實際更改 URL 來處理傳入請求。此外,URL 重寫通常沒有相應的 API 來建立基於模式的 URL。在 URL 重寫中,如果更改了 URL 模式,則必須手動更新包含原始 URL 的所有超連結。

由於 ASP.NET 路由可以從 URL 提取值,所以處理傳入請求時不更改 URL。如果必須建立一個 URL,則將參數值傳遞到為您產生 URL 的方法中。若要更改 URL 模式,請在某位置更改該模式,您在應用程式中建立的基於該模式的所有連結將自動使用新模式。

定義的 URL 模式稱作“路由”。在路由中,您可以指定預留位置,用於映射到從 URL 請求中分析的值。您還可以指定用於匹配 URL 請求的常量值。

在路由中,您可以通過用大括弧( { 和 })括住預留位置來定義佔位符(稱為“URL 參數”)。分析 URL 時將/ 字元解釋為分隔字元。將路由定義中不是分隔字元和不在大括弧中的資訊視為一個常量值。將從兩個分隔字元之間提取的值分配給預留位置。

您可以在分隔字元之間定義多個預留位置,但必須用一個常量值分隔開。

ASP.NET 路由調試

在Mix會議上,Scott Hanselman’s示範了一個簡單的route測試程式(route tester),這個工具會顯示當前地址欄中請求地址裡存在的Route資料內容(頁面裡的Route Data)。因此你可以在地址欄中輸入各種Urls來觀察它匹配了哪一個路徑。在頁面底部,顯示了你的程式中所有被定義的route列表。它可以讓你看到當前的URL匹配哪個你定義的route。 這個工具的用處在於,有時候你希望的匹配路徑卻被其他的路徑定義所代替。它可以向你展示出發生了這種情況。

要使用這個工具,只要下載這個zip檔案,然後把dll檔案放到你的程式的Bin目錄裡,再在Global.asax.cs檔案的Appliation_Start函數裡添加一行代碼(黑體字的)。

protected void Application_Start(object sender, EventArgs e)
{
  RegisterRoutes(RouteTable.Routes);
RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
}

它會使用DebugRouteHandler來更新那些你的應用中所有的route處理常式(IRouteHandler),這些route處理常式原本是為了處理常式中每個不同的route特別定義的。

具體參看:ASP.NET Routing Debugger

http://www.informit.com/content/images/9780672329982/samplepages/0672329980_CH02.pdf

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.