2010-09-30 44 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”,以便匿名类型中成员的名称与操作方法中参数的名称相匹配。