2014-10-06 151 views
0

我讀了網上的文章,其顯示以下路由器定義: -瞭解Asp.net MVC路由配置

public static void RegisterRoutes(RouteCollection routes) { 
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.MapRoute(null, 
205 
"", 
new { 
controller = "Product", action = "List", 
category = (string)null, page = 1 
} 
); 
routes.MapRoute(null, 
"Page{page}", 
new { controller = "Product", action = "List", category = 
(string)null }, 
new { page = @"\d+" } 
); 

但我不明白這是否路由器的規則意味着,他們將如何工作,我通常不會修改路由器規則並保持默認定義原樣? 謝謝

回答

0

老實說,我真的不想創建一個新的應用程序,並測試出路。假設它沒有任何不可預見的問題,那麼它在做什麼:

routes.IgnoreRoute(「{resource} .axd/{* pathInfo}」); < - 告訴它忽略嘗試下載資源文件。

null應該是路由名稱。他們沒有分配一個名字。我猜205是一個產品ID,「」操作默認爲「List」,如果你沒有添加一個類別到查詢字符串,那麼它被分配一個空值,然後被轉換成一個字符串。這對我來說似乎有點奇怪。沒有測試,它會給出一個空字符串或一個空值。該頁面將用於瀏覽頁面。相當多的這條路線依賴於特定的服務器端操作。

routes.MapRoute(null, 
205 
"", 
new { 
controller = "Product", action = "List", 
category = (string)null, page = 1 
} 
); 

最後一項設置控制器操作的默認值。新的一塊是「new {page = @」\ d +「},這是正則表達式,它將有效值限制在0-9之間的一個數字,+需要一個或多個數字作爲額外的珍聞,新的{ } < - 其中定製routerhandler方法將會隨着一個途徑,如果你想要做一些更具體的途徑處理相關搜索IRouteHandler的細節

routes.MapRoute(null, 
"Page{page}", 
new { controller = "Product", action = "List", category = 
(string)null }, 
new { page = @"\d+" } 
); 

我希望這有助於路由可以是一個真正的痛苦,有時。