c# - 在 MVC 4 中选择表的所有 tr 并使用复选框将其发送到 Controller

标签 c# asp.net asp.net-mvc razor asp.net-mvc-4

我想使用复选框来选择多个用户并将结果发送到我的 Controller 。

起初我只是将移动用户的数量发送到 Controller ,但是发送的不仅仅是数量,我需要号码和用户名,我的 Controller 和我的 View 如下:

会以某种方式发送号码和姓名吗?

@using (Html.BeginForm("Enviar", "Home")) {
  <table id="myTable">
    <thead>
      <tr>
        <th>
          <input type="checkbox" />
        </th>
        <th>@Html.DisplayName("Nome")</th>
        <th>@Html.DisplayName("CANCELADO")</th>
        <th>@Html.DisplayName("Numero")</th>
      </tr>
    </thead>
    <tbody>
      @foreach (var item in Model) {
        <tr>
          <td>
            <input type="checkbox" name="CELULAR" value="@item.CELULAR" />
          </td>
          <td name="Nome">@Html.DisplayFor(modelItem => item.NOME)</td>
          <td name="Email">@Html.DisplayFor(modelItem => item.CANCELADO)</td>
          <td name="Celular" value="@item.CELULAR">@Html.DisplayFor(modelItem => item.CELULAR)</td>
        </tr>
      }
    </tbody>   
  </table>
  <input type="submit" value="Selecionar"/> 
}

接收的 Controller :

[HttpPost]
public ActionResult Enviar(String[] celular) {
   .....
   return View();
}

最佳答案

发布集合时,必须正确索引它们。因此,您必须使用 for循环而不是 foreach .

此外,为什么您的 HttpPost拿个String[]而不是你的模型?首先将其更改为您的模型类型。

假设您的模型是:@model List<YourType>

更改您的 HttpPost采取这一点:

[HttpPost]
public ActionResult Enviar(List<YourType> model) {
   .....
   return View();
}

现在我们将重写您的 foreach进入for并使用 CheckBoxFor helper 。另外,添加 HiddenFor您希望在帖子中看到的任何属性的字段:

@for (int i = 0; i < Model.Count; i++)
{
    <tr>
      <td>
        @Html.CheckBoxFor(m => m[i].CELULAR)
      </td>
      <td name="Nome">
          @Html.HiddenFor(m => m[i].NOME)
          @Html.DisplayFor(m => m[i].NOME)
      </td>
      <td name="Email">
          @Html.HiddenFor(m => m[i].CANCELADO)
          @Html.DisplayFor(m => m[i].CANCELADO)
      </td>
      <td name="Celular" value="@m[i].CELULAR">
          @Html.DisplayFor(m => m[i].CELULAR)
      </td>
    </tr>
}

关于c# - 在 MVC 4 中选择表的所有 tr 并使用复选框将其发送到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16070291/

相关文章:

asp.net-mvc - 发生异常时返回特殊的 JsonResult

javascript - 在 JQUERY 数据表的 TR ID 中设置数据行主 ID

c# - 为什么我的解决方案不适用于 C# 中的 P/Invoke NotifyServiceStatusChange?

c# - ASP.NET MVC : How to get route values

c# - Office 365 API Active Directory 权限

c# - AAD : How uniquely identify users in a Web API?

javascript - 自动触发按钮 Action 而不是按下它

c# - Winforms 进度条不更新 (C#)

c# - DataTable按索引将选定的行和列复制到另一个DataTable

asp.net - MVC 中最后修改的 header