use*_*576 3 c# asp.net asp.net-mvc razor asp.net-mvc-4
我想使用复选框选择多个用户并将结果发送到我的控制器.
起初我只是将移动用户的数量发送到控制器,但是发送的数量超过了数量,我需要号码和名称用户,我的控制器和我的视图如下:
会不会以某种方式发送号码和名称?
@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"/>
}
Run Code Online (Sandbox Code Playgroud)
接收的控制器:
[HttpPost]
public ActionResult Enviar(String[] celular) {
.....
return View();
}
Run Code Online (Sandbox Code Playgroud)
发布集合时,必须正确编制索引.因此,你必须使用for循环而不是a foreach.
另外,为什么你HttpPost拿一个String[]而不是你的模特?首先将其更改为您的模型类型.
假设你的模型是: @model List<YourType>
改变你HttpPost的想法:
[HttpPost]
public ActionResult Enviar(List<YourType> model) {
.....
return View();
}
Run Code Online (Sandbox Code Playgroud)
现在我们将把你的内容重foreach写成一个for并使用CheckBoxFor帮助器.此外,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>
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8792 次 |
| 最近记录: |