2011-04-14 38 views
0

我正在asp.net MVC3應用程序中創建一個自定義路由,我想創建一個路由約束來檢查url是否具有整數作爲參數的第二部分。如果是這樣,我需要重定向到不同的行動。mvc3應用程序中的自定義約束

產品/ 12
產品/ 1990年12月2日

回答

1

這裏是我如何做到這一點。

''# MapRoute allows for a dynamic product ID 
    routes.MapRoute("Products", "product/{id}", 
          New With {.controller = "product", 
             .action = "index"}, 
          New With {.id = "[0-9]+") ''# this forces the ID to only be a number. 

然後,您將分別創建您的重定向邏輯。我會建議使用ActionFilter來做你的重定向工作。你只寫一次,它可以被全部實施。

+0

我需要使用IRouterConstraint來完成它。我在做什麼是創建一個約束,檢查是否第二個路徑是數字,然後重定向到一個動作,否則返回到第二個動作方法 – DotnetSparrow 2011-04-14 18:20:16

+0

爲什麼不捕獲一個路由,然後使用ActionFilter來決定重定向? – 2011-04-14 18:21:51

+0

我怎樣才能在Rote中捕獲兩者? – DotnetSparrow 2011-04-14 18:28:16