C# 带字符串的ASP.NET MVC 2路由问题

C# 带字符串的ASP.NET MVC 2路由问题,c#,asp.net-mvc-2,url-rewriting,url-routing,C#,Asp.net Mvc 2,Url Rewriting,Url Routing,我想给我的webapp添加一个简单的路由,但它就是不起作用,我也不知道为什么 global.asax.cs中的代码: routes.MapRoute( "BrowseGenre", "{controller}/{action}/{genre}", new {controller = "Store", action = "Browse", genre = UrlParameter.Optional} ); S

我想给我的webapp添加一个简单的路由,但它就是不起作用,我也不知道为什么

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始终为空


正确生成操作链接(如domain.com/Store/Browse/Jazz

操作参数应调用
genre
,而不是
genreName
(与在路由中调用UI的方式相同):


将匿名类型从更改为

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

将动作中的参数名称从“genreName”更改为“genre”,以便匿名类型中的成员名称与动作方法中的参数名称匹配

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