我将 IEnumerable 类型传递给我的视图,并为每个项目输出一个 html.textbox 以输入详细信息。
当我把它发回我的控制器时,集合是空的,我不明白为什么。
public class Item
{
public Order Order { get; set; }
public string Title { get; set; }
public double Price { get; set; }
}
我的获取方法:
public ActionResult AddItems(Order order)
{
Item itemOne = new Item
{
Order = order
};
Item itemTwo = new Item
{
Order = order,
};
IList<Item> items = new List<Item> { itemOne, itemTwo };
return View(items);
}
风景:
<% int i = 0; foreach (var item in Model)
{ %>
<p>
<label for="Title">Item Title:</label>
<%= Html.TextBox("items[" + i + "].Title") %>
<%= Html.ValidationMessage("items[" + i + "].Title", "*")%>
</p>
<p>
<label for="Price">Item Price:</label>
<%= Html.TextBox("items[" + i + "].Price") %>
<%= Html.ValidationMessage("items[" + i + "].Price", "*")%>
</p>
<% i++;
} %>
POST 方法:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult AddItems(IEnumerable<Item> items)
{
try
{
return RedirectToAction("Index");
}
catch
{
return View();
}
}
目前我只是在 post 方法上有一个断点来检查我得到了什么。