无法将@ html.actionlink中的参数发送到partialview

时间:2016-08-11 10:05:39

标签: asp.net-mvc-4 razor partial-views html.actionlink

我在foreach循环中有一个actionlink。根据模型项目,我将动态生成带有值的链接按钮。 这就是它的外观

@foreach (var group in Model.records)
{
    <tr>
        <td>@Html.ActionLink(@group.clientId.ToString(), "detailsbyClientId", "DocumentVerification", new { id = @group.clientId.ToString()},null)</td>
        <td>@group.clientName</td>
        <td>@group.Count</td>
    </tr>
}

点击链接按钮,我将调用部分视图,如下所示。

[HttpGet]
public PartialViewResult detailsbyClientId(int? clientId)
{
    return PartialView();
}

我收到null的{​​{1}}值,但clientId包含有效值。

2 个答案:

答案 0 :(得分:0)

试试这个:

该点是您传递的变量的名称,并且期望控制器中的值的变量名称应该相同。

 @foreach (var group in Model.records)
 {
   <tr>
    <td>@Html.ActionLink(@group.clientId.ToString(), "detailsbyClientId", "DocumentVerification", new { clientId = group.clientId},null)</td>
    <td>@group.clientName</td>
    <td>@group.Count</td>
  </tr>
 }

 [HttpGet]
 public PartialViewResult detailsbyClientId(int? clientId)
 {
    return PartialView();
 }

答案 1 :(得分:0)

方法中的参数名为clientId,但您生成的查询字符串值为id。更改一个或另一个以匹配

public PartialViewResult detailsbyClientId(int? ID)
{
    ....
}

并在视图中

@Html.ActionLink(@group.clientId.ToString(), "detailsbyClientId", "DocumentVerification", new { id = group.clientId },null)

请注意,您不需要第4个参数中的@.ToString() - 只需new { id = group.clientId }