首先,你不能序列化一个table
对象:
HTML:
<table id="myTable">
<tr>
<td><input id='one' name='one' value='blah' /></td>
<td><input id='two' name='two' value='moreblah' /></td>
</tr>
</table>
JavaScript:
var serialized = $("#myTable").serialize();
debugger;
serialized
当代码在调试器中暂停时,您可以看到""
空字符串。MVC 不知道如何将它模型绑定到您的 IEnumerable,因此它为空。
另一方面,如果你这样做:
var serialized = $("#one, #two").serialize();
debugger;
那么serialized
将等于"one=blah&two=moreblah"
。
其次,如果您实际上绑定到 aform
那么表中的所有输入元素都将被正确序列化。但是,输入元素的名称非常重要,因为您尝试将模型绑定到IEnumerable<CafePlaced>
. 阅读 Phil Haack 撰写的关于模型绑定到列表的文章:http: //haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
如果您没有正确执行此操作,那么 MVC 将不知道如何对绑定进行建模,并且您的参数将作为 null 传入。