无法将@html.actionlink 中的参数发送到局部视图

Unable to send parameters in @html.actionlink to partialview

我在 foreach 循环中有一个动作 link。根据模型项目,我动态生成 link 具有值的按钮。 这是它的样子

@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>
}

单击 link 按钮后,我将如下调用部分视图。

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

我收到 clientIdnull 值,但 @group.clientId.ToString() 包含有效值。

试试这个:

关键是你传递的变量的名称和控制器中期望值的变量的名称应该相同。

 @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();
 }

您的方法中的参数名为 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 }