Почему мой ActionLink не генерируется должным образом? - PullRequest
2 голосов
/ 07 октября 2009

Я не могу понять, почему ActionLink неправильно генерирует URL в этом одном экземпляре.

У меня есть контроллер с именем Activity и представление с именем Show. Оттуда я пытаюсь создать ссылку на контроллер ServiceCall, Показать представление. Из любой точки зрения на ServiceCall это прекрасно работает:

<%= Html.ActionLink(Html.Encode(sc.CallNumber), "Show", new { callNumber = "100" })%>

В представлении «Активность» это не работает:

<%= Html.ActionLink(Html.Encode(sc.CallNumber), "Show", "ServiceCall", new { callNumber = "100" })%>

Генерирует ссылку типа http://localhost/Activity/Show/12?Length=11

После некоторых исследований я решил попробовать это:

<%= Html.ActionLink(Html.Encode(sc.CallNumber), "Show", new { controller = "ServiceCall" }, new { callNumber = "100" })%>  

Это дает мне URL http://localhost/ServiceCall/Show, но не дает callNumber. Есть идеи?

Это в моих маршрутах:

routes.MapRoute(
            "ShowCall",
            "ServiceCall/Show/{callNumber}",
            new {controller = "ServiceCall", action = "Show", callNumber = ""}
            );

Ответы [ 2 ]

6 голосов
/ 07 октября 2009

Я думаю, что вы не вызываете правильное переопределение. Вам нужно:

<%= Html.ActionLink(
    sc.CallNumber,
    "Show",
    "ServiceCall",
    new { callNumber = "100" },
    null) %>

Обратите внимание на дополнительные null. У меня недавно была похожая проблема.

Редактировать: Кроме того, я уверен, что вам не нужно Html.Encode. Это уже кодируется.

0 голосов
/ 07 октября 2009

Попробуйте это:

<%= Html.ActionLink(Html.Encode(sc.CallNumber), "Show", "ServiceCall", new { callNumber = "100" }, null)%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...