2008-09-26 119 views
2

最近我開始使用ASP.NET MVC,閱讀博客,教程,嘗試一些路線等等。現在,我偶然發現了一個需要幫助的問題。需要一些ASP.NET MVC路由幫助

基本上,我有一個像/products.aspx?categoryid=foo的URL &的productid =酒吧

大多數教程/例子提出此地圖是這樣的:/產品/分類/富/酒吧,在那裏「的產品「是控制器,」類別「是行動等。

但我需要將其映射到/ products/foo/bar。 (無「類別」)

可能嗎?我錯過了什麼嗎?幫助將不勝感激。謝謝你提前:)

P.S.對不起,我的英語不好。

回答

5

(你的英語就好了,沒必要道歉!)

可以定義這樣的路線:

routes.MapRoute("productsByCategory", "products/{category}/{productid}", 
    new { controller="products", action="findByCategory" }) 

這將匹配

products/foo/bar和撥打行動看起來像這樣:

public class ProductsController : Controller 
{ 
    ... 

    public ActionResult FindByCategory(string category, string productid) 
    { 
      .... 
    } 
} 

對此有幫助嗎?

+0

工程就像一個魅力!我開始像框架越來越多L :) – ciscocert 2008-09-26 15:39:42

0

您也可能會考慮一個控制器來測試您的自定義路線......

退房Stephen Walther's blog entry它。

+0

你應該寫單元測試來測試你的自定義路線。它是自動化的,每次我們對控制器,操作或路由進行更改時都需要運行它,那麼爲什麼依靠手動檢查呢? – 2008-09-26 19:03:18