在我的网站上有一个table
,在每个td
中,内部都有一个div
<input>
。
我遍历表并序列化每个div并将其发布到服务器。
for (var r = 0; r < tbodyRow.length; r++) {
var tbodyCols = tbodyRow[r].cells;
for (var c = 0; c < tbodyCols.length; c++) {
row = r + 1;
cell = c + 1;
div = $("#tbody tr:nth-child(" + row + ") td:nth-child(" + cell + ") :input").serialize();
if (div != "") {
$.post("../Contoller/Action?Mode=" + Mode, div, function () { });
}
tbodyCounter++;
};
};
并且在服务器中 - 该操作将一个对象作为获取它的参数。
我想只发布一次对象的所有列表(我在div中)
并在服务器端将其作为List<T>
。
有可能吗?
答案 0 :(得分:2)
是的,模型绑定允许这样做。请参阅以下文章
http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/
另请参阅下面的一篇文章
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
答案 1 :(得分:1)
在表单标记和序列化表单中输入并发送它。
$.post("@Url.Action("YourAction","YourController")",
$("#yourFormID").serailize(),function(data){
});
在控制器中,您可以使用视图强类型化的model / viewmodel作为参数,以便MVC模型绑定将发布的数据绑定到它。
[HttpPost]
public ActionResult YourAction(YourViewModel model)
{
//do something
}