第一部分的扼要簡述
在這個系列的第一部分裡,我們創建了一個電子商務網站,呈示了三類URL:
URL格式 行為 URL例子 /Products/Categories 浏覽所有的產品分類 /Products/Categories /Products/List/Category 列出一個分類中的產品 /Products/List/Beverages /Products/Detail/ProductID 顯示一個特定產品的細節 /Products/Detail/34
我們通過創建象下面這樣一個ProductsController類來處理這些URL:
在把上面這個類加到我們的應用中後,ASP.NET MVC框架就會把進來的URL自動導向到我們的控制器上的適當的action方法來處理請求。
在今天的貼子裡,我們將深入討論這個URL映射是如何發生的,以及探討我們可以在ASP.NET MVC框架中利用的更高級的路徑選擇(routing )場景。我還將示范你如何可以輕松地單元測試URL路徑選擇場景。
ASP.NET MVC URL路徑選擇系統都做些什麼?
ASP.NET MVC框架包括了一個很靈活的URL路徑選擇系統,它允許你在應用中定義URL映射規則。路徑選擇系統有2個主要目的:
把進來的URL映射到應用,並把它們做導向,這樣,正確的Controller和Action方法執行來處理這些請求
構建可以用來回調Controllers/Actions的輸出到客戶端的URL(例如,表單提交, <a href=""> 鏈接, 和 AJAX 調用等 等)
能夠使用URL映射規則來同時處理進來的和輸出的URL場景給應用代碼添加了許多靈活性。這意味著,如果我們以後想改變應用的URL結構的 話(譬如,把 /Products 改名為 /Catalog),我們可以修改應用層次的一套映射規則即可,而不需要改動控制器或視圖模板中的任何代碼。
默認的ASP.NET MVC URL路徑選擇規則
在默認情形下,當你使用Visual Studio用ASP.NET MVC Web Application模板來創建一個新項目時,它會往項目裡添加一個ASP.NET Application類。這是在Global.asax後台代碼中實現的: