C# 在MVC4中,选中表格的所有tr并使用复选框将其发送给控制器

C# 在MVC4中,选中表格的所有tr并使用复选框将其发送给控制器,c#,asp.net,asp.net-mvc,razor,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Razor,Asp.net Mvc 4,我想使用复选框选择多个用户并将结果发送到我的控制器 起初,我只是将移动用户的数量发送给控制器,但现在需要发送的不仅仅是数量,我需要数量和名称用户,我的控制器和我的视图如下所示: 你会以某种方式发送号码和姓名吗 @using (Html.BeginForm("Enviar", "Home")) { <table id="myTable"> <thead> <tr> <th> <inpu

我想使用复选框选择多个用户并将结果发送到我的控制器

起初,我只是将移动用户的数量发送给控制器,但现在需要发送的不仅仅是数量,我需要数量和名称用户,我的控制器和我的视图如下所示:

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

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

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

另外,为什么您的
HttpPost
采用
String[]
而不是您的型号?首先将其更改为您的模型类型

假设您的型号为:
@model List

将您的
HttpPost
更改为:

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

我不习惯建模,不使用模型行吗?我使用的是recendo字符串数字和所有这些计算方法,我想得到名称和数字,例如,不想使用model@user2292576你真的应该使用一个模型来做这样的事情,这是最佳实践。所以他在选择我选择的这个时没有问题。。您知道如何只捕获那些标记了复选框的人吗?@user2292576您可以在
HttpPost
操作中检查哪些项的
CELULAR
设置为true。类似于
var selected=model.Where(m=>m.CELULAR.ToList()
@谢谢..捕捉得好。。对于每个都不起作用,您需要一个for循环。
[HttpPost]
public ActionResult Enviar(List<YourType> model) {
   .....
   return View();
}
@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>
}