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

Retrieving all the cell data from a jQuery datatable on post

本文关键字:单元格 数据 检索 post 上从 jQuery 数据表      更新时间:2023-09-26

这个问题与我发布的一个没有得到回答的问题有关:如何使用jQuery Datatables和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在发布时始终为空。

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

您忘记取消表单提交的默认操作,因为您的.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,以便默认的模型绑定器能够将请求反序列化为字符串数组。