2010-07-19 2 views
4

Я эту ссылку на страницуHtml.ActionLink(): новое {значение маршрута} действует странно. Я не знаю, где длина = 17 параметр приходит из

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

и простой способ, чтобы получить статью Id

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

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

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

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

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

ответ

13

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

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

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

+0

Теперь это имеет смысл. Теперь работает. Поэтому, если я хочу использовать как значения маршрута, так и атрибуты html, как это сделать? – Richard77

+1

Отредактирован ответ. – Castrohenge

+0

@Kieramaine: приятно. и спасибо большое – Richard77

0

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

Длина 17 соответствует длине рукоятки изделия.

Редактировать: Возможно, это связано с перегрузкой ActionLink.