我有一個屬性爲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