Html.ActionLink (): new {route value} работает странно. Я не знаю, откуда берется параметр length = 17 - PullRequest
4 голосов
/ 19 июля 2010

У меня есть эта ссылка на странице

<% = Html.ActionLink(item.Title, "Edit", "ArticleManagement", 
                      new { id = item.ArticleDataID })%>

и простой способ получения идентификатора статьи

public ActionResult Edit(int id)
{
  //Do something
}

К сожалению, я получаю ошибку " словарь параметров содержит нулевое значение для идентификатора параметра int32 для Edit (Int32) ... "

Когда я проверяю URL, я вижу что-то вроде "http://localhost:59786/ArticleManagement/Edit?Length=17"

Что такое " Длина = 17 "? и что там делает? Во всяком случае, пока я работаю с коллекцией, в которой всего 3 предмета.

Спасибо за помощь

Ответы [ 2 ]

13 голосов
/ 19 июля 2010

Вам нужно добавить ноль в качестве последнего параметра:

<%=Html.ActionLink("Title", "Edit", "ArticleManagement", 
        new { id = 1 }, new { @class = "link-class", attr = "attribute value" })%>

Я думаю, что он использует значения вашего маршрута в качестве атрибутов html без нуля.

0 голосов
/ 19 июля 2010

У меня тоже было такое, похоже, что это происходит, когда ссылка на действие не может соответствовать маршруту.

Длина 17 соответствует длине управления статьей.Это может быть связано с перегрузкой ActionLink.

...