【问题标题】:Unable to send parameters in @html.actionlink to partialview无法将@html.actionlink 中的参数发送到部分视图
【发布时间】:2016-08-11 10:05:38
【问题描述】:

foreach 循环中有一个操作链接。根据模型项目,我正在动态生成带有值的链接按钮。 看起来是这样的

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

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

【问题讨论】:

  • 您创建了一个名为 id 的查询字符串值,但您的方法中的参数是 clientId - 更改其中一个以使其匹配
  • 是的,非常感谢。请回答
  • @NIRANJANG 这是一个错字,不是答案。对于此类问题,我们有充分的理由。

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


【解决方案1】:

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

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

在视图中

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

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

【讨论】:

    【解决方案2】:

    试试这个:

    重点是您要传递的变量的名称和期望控制器中的值的变量的名称应该相同。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      相关资源
      最近更新 更多