2016-06-15 2 views
0

в моей бритве синтаксисеВ чем причина этого странного поведения @ html.actionlink?

@foreach(var item in List<user>TempData["lst"]) 
{ 
    <td>@item.something</td> 
    <td>@item.something2</td> 
    if(somecondition) 
    { 
     @Html.ActionLink("Link text","ActionName","Controller Name",new {@item.something3,@item.something4}) 
    } 
} 

В контроллере у меня есть этот

public ActionResult ActionName(string something3, string something4) 
{ 
} 

теперь, если я упоминаю имя контроллера в @Html.ActionLink() то значение something3 и something 4 отправляется в null. Но если я не добавляю имя контроллера в @Html.ActionLink(), он отправляет правильные значения в элемент на контроллер. Может ли кто-нибудь объяснить мне это.

+2

Потому что вы используете неправильную перегрузку - это должно быть '@ Html.ActionLink (« Текст ссылки »,« Имя_экземпляра »,« Имя_контроллера », новый {item.something3, item.something4}, null)' –

ответ

0

Вам просто нужно указать ссылку, какие переменные будут вставлять ваши данные из вашего представления.

@Html.ActionLink("Link text","ActionName","Controller Name",new {something3 = @item.something3, something4 = @item.something4}) 

Это позволит вашему контроллеру забрать данные, отправляемые вами в параметры вашего метода.

Надеюсь, это поможет.

Смежные вопросы