我正在努力找出在MVC中做某些事情的正确方式,而在WebForms中并不困难,我希望有人能指导我正确的方向。
基本上,我正在显示一张数据表格,用户应该能够选择零个或多个行。当他们按下提交按钮时,我希望我的控制器知道哪些行已被选择,因为这将影响屏幕上的其他数据。
我的视图如下:
<form action="/Summary/Index" method="post">
<table>
<thead>
<tr>
<th></th>
<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<% foreach (Person p in Model)
{ %>
<tr>
<td>
<input type="checkbox" name="" /> <!-- HOW SHOULD THIS BE RENDERED? -->
</td>
<td><%= p.Name %></td>
<td><%= p.Age %></td>
</tr>
<% } %>
</tbody>
</table>
<input type="submit" value="Update" />
</form>
当提交按钮被点击时,表单将会post到当前的url。请注意,模型“Person”只是一个ViewModel,因此我可以添加任何必要的与UI相关的属性。我应该向Person添加一个“Selected”属性,并让我的控制器使用Person列表/数组并检查每个人的选定属性吗?
请注意,我需要一个不需要JavaScript就能工作的解决方案,并且我不希望我的控制器关心如何检索复选框的值-如果需要,我很乐意编写自定义ModelBinder。
请问有人能给我一个想法怎么做吗?
非常感谢, Simon。