我想使用复选框来选择多个用户并将结果发送到我的 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/