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