You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Razor/ASP.NET MVC Core 7:如何将所有分页的编辑表格数据返回至控制器

解决DataTables分页表格提交所有数据的问题

你的代码只能获取当前页数据,是因为DataTables默认只在DOM中渲染当前页的行,遍历DOM自然拿不到其他分页的数据。直接用DataTables提供的API就能获取全量数据,以下是具体方案:

核心思路

利用DataTables的rows().nodes()或rows().data()API,直接从表格实例中获取所有分页的行数据,而非遍历DOM元素。

完整代码示例

1. 确保表格已初始化为DataTables实例

如果还没初始化,先执行:

var table = $('#table1').DataTable();

2. 获取所有分页的单元格数据

如果是直接编辑表格DOM内容的场景,用以下代码提取所有单元格文本:

var myTableArray = [];

// 遍历所有分页的行DOM节点
table.rows().nodes().each(function(rowNode) {
  // 提取当前行的所有单元格内容
  $(rowNode).find('td').each(function() {
    myTableArray.push($(this).text().trim());
  });
});

如果你的表格是基于数据源(如AJAX加载),且编辑后已同步到DataTables的数据源中,可直接获取结构化数据:

// 获取所有行的结构化数据,转为数组
var allData = table.rows().data().toArray();

3. 发送AJAX请求到控制器

注意设置contentType为application/json,确保控制器能正确接收数组:

$.ajax({
  type: 'POST',
  url: '/Controller/Action',
  contentType: 'application/json',
  data: JSON.stringify(myTableArray), // 或JSON.stringify(allData)
  success: function(res) {
    // 处理成功逻辑
  },
  error: function(xhr) {
    // 处理错误逻辑
  }
});

控制器Action示例

C#后台需对应接收参数:

[HttpPost]
public IActionResult Action(List<string> myTableArray)
{
  // 处理提交的全量数据
  return Json(new { Success = true });
}

额外提示

如果使用DataTables Editor插件实现编辑功能,可直接调用editor.data()获取所有编辑后的数据,无需手动遍历。

内容的提问来源于stack exchange,提问作者sprash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:52:47