我有一个属性为List的模型。 MyObjects只有一个ID,一个描述和一个选定的布尔属性。ASP.Net MVC从复选框列表中返回值
我设法在我的视图上显示项目作为复选框。我这样做了:
<%foreach (var cat in Model.DefaultCategories)
{%>
<tr>
<td>
<%=cat.Category %>
</td>
<td>
<%=Html.CheckBoxFor(x=>cat.Selected) %>
</td>
</tr>
<%
}%>
</table>
但是,有一个问题。当它们呈现时,它们都以相同的名字结束。以下是我的名单的一部分:
<tr>
<td>
Medical
</td>
<td>
<input id="cat_Selected" name="cat.Selected" type="checkbox" value="true" /><input name="cat.Selected" type="hidden" value="false" />
</td>
</tr>
<tr>
<td>
Salary
</td>
<td>
<input checked="checked" id="cat_Selected" name="cat.Selected" type="checkbox" value="true" /><input name="cat.Selected" type="hidden" value="false" />
</td>
</tr>
它们都被命名为“cat.Selected”。
我该如何解决这个问题?
然后,当我提交时,我需要遍历它们。用不同的名字,我认为我可以让他们在我的HttpPost方法中:
[HttpPost]
public ActionResult Modify(int id, FormCollection formValues)
{
PayeeDto p = new PayeeDto { Name = Request.Form["name"], PayeeId = id };
Services.PayeeServices.Save(p);
return RedirectToAction("Index");
}
FormCollection会有不同的名字吗?目前,它只有一个'cat.selected'项目。
谢谢 - 你能也许解释Mapper.Map?听起来很有趣。 – Craig 2011-01-19 08:07:54