Проблемы маршрутизации ASP.NET MVC 2 со строкой - PullRequest
1 голос
/ 30 сентября 2010

Я хочу добавить простой маршрут в мое веб-приложение, но оно просто не работает, и я не знаю, почему

код в 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

Ответы [ 2 ]

2 голосов
/ 30 сентября 2010

Параметр действия должен называться genre вместо genreName (так же, как он вызывается в вашем маршруте):

public ActionResult Browse(string genre)
0 голосов
/ 30 сентября 2010

измените свой анонимный тип с

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

до

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

OR

измените имя аргумента в действии с "genreName" на "жанр", чтобы имя члена анонимного типа совпадало с именем аргумента в вашем методе действия.

...