@ html.actionlink这种奇怪行为背后的原因是什么?

时间:2016-06-15 09:44:43

标签: asp.net-mvc razor

用我的剃刀语法

@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()中提及控制器名称,则something3something 4的值将作为null发送。 但是如果我没有在@Html.ActionLink()中添加控制器名称,那么它会将项目中的正确值发送给控制器。有人可以解释一下这个。

1 个答案:

答案 0 :(得分:0)

您只需要告诉链接从您的视图中插入数据的变量。

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

这将允许您的控制器获取您发送到方法参数中的数据。

希望这有帮助。