ビューにタイプ IEnumerable を渡し、アイテムごとに html.textbox を出力して詳細を入力します。
これをコントローラーに戻すと、コレクションが空になり、その理由がわかりません。
public class Item
{
public Order Order { get; set; }
public string Title { get; set; }
public double Price { get; set; }
}
私のGetメソッド:
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 メソッドにブレークポイントを設定して、何が返されるかを確認しています。