Проблема маршрутизации URL ASP.NET MVC 3 с пользовательским маршрутом - PullRequest
2 голосов
/ 18 марта 2011

У меня есть следующее пользовательское правило маршрутизации URL:

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
          "RaceRoute", // Route name
          "people/create/{raceid}/{id}", // URL with parameters
          new { controller = "People", action = "Create", raceid = UrlParameter.Optional, id = UrlParameter.Optional }
          );

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

, которое я пытаюсь использовать с Actionlink

@Html.ActionLink("Add Person", "Create", "People", new { raceid = item.RaceId, id="1" })

Я в основном хочу, чтобы URL выглядел как "/ people/ create / 5/1 "

Но сгенерированный HTML-код выглядит как

<a href="/races/Create?Length=6" id="1" raceid="5">Add Person</a>

В нем должно быть сказано: <a href="/people/Create/5/1">Add Person</a>

Страница, на которой я сейчас нахожусь, http://localhost:57355/races

Если я просто @Html.ActionLink("Add Person", "Create", "People"), то это работает, но у меня нет параметров.

Чего мне не хватает?

Спасибо

1 Ответ

2 голосов
/ 18 марта 2011

Я думаю, вы хотите перегрузку метода. Добавьте ноль в конце:

@Html.ActionLink("Add Person", "Create", "People", new { raceid = item.RaceId, id="1" }, null)

Вот перегрузка:

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    RouteValueDictionary routeValues,
    IDictionary<string, Object> htmlAttributes
)

или это:

* * 1010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...