我知道一种将列表发布到表单的方法,参考链接是http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
我有一个需要发布 List> 的场景,通过使用上面链接中提到的代码,我得到了帖子中的值。
生成的html如下:
<input class="input-micro valid" min="1" name="posItems[0][0].Quantity" required="required" value="30" type="text">
<input class="input-micro valid" min="1" name="posItems[1][0].Quantity" required="required" value="20" type="text">
<input class="input-micro valid" min="1" name="posItems[2][0].Quantity" required="required" value="20" type="text">
<input class="input-micro valid" min="1" name="posItems[0][1].Quantity" required="required" value="20" type="text">
<input class="input-micro valid" min="1" name="posItems[1][1].Quantity" required="required" value="50" type="text">
<input class="input-micro valid" min="1" name="posItems[2][1].Quantity" required="required" value="20" type="text">
我的帖子动作就像
公共 ActionResult 保存(列出 posItems)
当两个列表具有相同数量的项目或者您可以说两个列表具有相同计数时,这很有效。
当第二个列表中的计数大于第一个列表时,我不会从第二个列表中获取附加值。
请参阅下面的示例,其中第二个列表比第一个列表多 1 个项目。
<input class="input-micro valid" min="1" name="posItems[0][0].Quantity" required="required" value="30" type="text">
<input class="input-micro valid" min="1" name="posItems[1][0].Quantity" required="required" value="20" type="text">
<input class="input-micro valid" min="1" name="posItems[2][0].Quantity" required="required" value="20" type="text">
<input class="input-micro valid" min="1" name="posItems[0][1].Quantity" required="required" value="20" type="text">
<input class="input-micro valid" min="1" name="posItems[1][1].Quantity" required="required" value="50" type="text">
<input class="input-micro valid" min="1" name="posItems[2][1].Quantity" required="required" value="20" type="text">
<input class="input-micro valid" min="1" name="posItems[3][1].Quantity" required="required" value="114" type="text">