从post上的jQuery数据表中检索所有单元格数据

时间:2013-02-22 12:44:39

标签: javascript jquery asp.net asp.net-mvc asp.net-mvc-3

这个问题与我发布的一个问题有关,我没有得到答案:How to do batch row updating using jQuery Datatables and ASP MVC

我正在使用jQuery datatablesASP.NET MVC 4。我想要实现的是当我点击提交按钮时,我需要将所有数据表的数据发回给我的控制器的操作方法。我将编辑我的表数据,然后我需要将这个编辑过的表数据回发给我的控制器,然后我想立即处理它。我不希望动态更新行或单元格。

我不知道该怎么做。我甚至试过像这样的事情,但这也行不通:

这就是我填充数据表的方式:

$('#com-plus-components-datatable').dataTable({
     "aoColumns": [
          { "mDataProp": [0], "sWidth": "35%" },
          { "mDataProp": [1], "sWidth": "65%" }
     ],
     "bAutoWidth": false,
     "bFilter": false,
     "bLengthChange": false,
     "bPaginate": false,
     "bProcessing": true,
     "bServerSide": true,
     "bSort": false,
     "iDisplayLength": 50,
     "sAjaxSource": '@Url.Action("GetWindowsServices")'
});

这是我尝试获取数据表数据:

$('form').submit(function () {
     $.post("@Url.Content("~/Server/Test")",
     $('form').serialize(),
     function (data) {
          alert('success');
     }, 'json');
});

我获取数据和执行所有处理的操作方法(下面的部分代码):

[HttpPost]
public ActionResult Test(string[] data)
{
     return View();
}

string[] data在帖子上始终为空。

单击提交按钮后,如何将所有数据表的数据存入我的操作方法?

1 个答案:

答案 0 :(得分:0)

您忘记通过从.submit处理程序返回false来取消表单提交的默认操作:

$('form').submit(function () {
     $.post('@Url.Action("Test", "Server")', $('form').serialize(), function (data) {
         alert('success');
     });
     return false; // <!-- You need this
});

或者您也可以这样做:

$('form').submit(function (evt) {
     evt.preventDefault(); // <!-- You need this
     $.post('@Url.Action("Test", "Server")', $('form').serialize(), function (data) {
         alert('success');
     });
});

另请注意我是如何使用Url.Action帮助程序而不是Url.Content来生成控制器操作的URL。这将考虑您的路线定义。对你的网址进行硬编码总是不好的。

此外,为确保您已尊重输入字段的standard naming conventions,以便默认模型绑定器能够将请求反序列化为字符串数组。