<form method="post">
<input type="text" name="ClientList[0].ItemList[0].ItemID">
<input type="text" name="ClientList[0].ItemList[0].Qty">
<input type="text" name="ClientList[0].ItemList[1].ItemID">
<input type="text" name="ClientList[0].ItemList[1].Qty">
<input type="text" name="ClientList[1].ItemList[0].ItemID">
<input type="text" name="ClientList[1].ItemList[0].Qty">
<input type="text" name="ClientList[1].ItemList[1].ItemID">
<input type="text" name="ClientList[1].ItemList[1].Qty">
<input type="submit" />
</form>
这是控制器
[HttpPost]
public ActionResult Sale(List<ClientList> ClientList)
{
return View();
}
public class ClientList
{
public List<ItemList> ItemList = new List<ItemList>();
}
public class ItemList
{
public int ItemID { get; set; }
public string Qty { get; set; }
}
第二个循环,项目详细信息未提交。
答案 0 :(得分:4)
您的ItemList
是字段,而非属性,DefaultModelBinder
无法设置其值。
将其更改为
public class ClientList
{
public List<ItemList> ItemList { get; set; }
}
作为旁注,name
属性可以只是
<input type="text" name="[0].ItemList[0].ItemID">
允许您将POST方法中的参数命名为您想要的任何内容(ItemList
除外)
答案 1 :(得分:0)
我使用了一种不同的方法,使用命名列表
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at Adding_new_source.New_source.main(New_source.java:53)