2010-09-30 57 views
1

ASP.NET MVC 2的路由問題,我想簡單的路由添加到我的web應用程序,但它只是不工作,我不知道爲什麼用繩子

代碼的global.asax.cs:

routes.MapRoute(
      "BrowseGenre", 
      "{controller}/{action}/{genre}", 
      new {controller = "Store", action = "Browse", genre = UrlParameter.Optional} 
     ); 

代碼在StoreController.cs:

// GET: /Store/Browse 
    public ActionResult Browse(string genreName) 
    { 

     var genreModel = storeDB.Genres.Include("Albums").Single(g => g.Name == genreName); 
     //.... 

genreName總是空

的actionlinks產生科爾ectly(如domain.com/Store/Browse/Jazz

回答

2

動作參數應稱爲genre代替genreName(方法同它的UI在你的路線叫):

public ActionResult Browse(string genre) 
+0

@Rup,是的正確。 – 2010-09-30 08:28:20

0

改變您的匿名類型從

new {controller = "Store", action = "Browse", genre = UrlParameter.Optional} 

new {controller = "Store", action = "Browse", genreName = UrlParameter.Optional} 

OR

將參數名稱從「genreName」更改爲「genre」,以便匿名類型中成員的名稱與操作方法中參數的名稱相匹配。