我序列化Fpr,
并使用jquery将其发布到服务器。
在操作方法中,我尝试获取List<T>
的{{1}}或IEnumerable<T>
,但object
或List<T>
为空。
如何将其发布到方法中,以便我将其作为列表或IEnumerable<T>
。
IEnumerable
我序列化表单,序列化就行了。问题只出在行动中 - 我得到了空,请帮助
答案 0 :(得分:2)
首先,您无法序列化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,因此它是null。
另一方面,如果你这样做:
var serialized = $("#one, #two").serialize();
debugger;
然后serialized
将等于"one=blah&two=moreblah"
。
其次,如果您实际绑定到form
,则表中的所有输入元素都将被正确序列化。 但是,输入元素的名称非常重要,因为您尝试模型绑定到IEnumerable<CafePlaced>
。阅读Phil Haack撰写的关于模型绑定到列表的文章:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
如果你没有正确地做,那么MVC将不知道如何建模绑定,你的参数将通过null来实现。