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

如何在.NET Core Web API中构建适配DataTables.js的数据结构

实现DataTables适配的.NET Core Web API数据结构

1. 创建通用数据包装类

先定义一个泛型类,精准匹配DataTables要求的{data: [...]}结构:

public class DataTablesResponse<T>
{
    public List<T> data { get; set; }
}

泛型T可以替换为你的任意业务实体类(比如User、Order),data字段名必须和DataTables的要求完全一致(默认是小写,若项目配置了驼峰序列化,也可以用大写开头的Data,序列化后会自动转小写)。

2. 在API控制器中使用

获取业务数据后,直接将其包装进上述类实例返回即可:

[ApiController]
[Route("api/[controller]")]
public class DataController : ControllerBase
{
    [HttpGet("table-data")]
    public IActionResult GetTableData()
    {
        // 替换为你的实际业务数据获取逻辑(比如从数据库查询)
        var businessList = new List<YourBusinessModel>
        {
            new YourBusinessModel { Id = 1, Title = "示例数据1" },
            new YourBusinessModel { Id = 2, Title = "示例数据2" }
        };

        // 包装成DataTables所需结构
        var response = new DataTablesResponse<YourBusinessModel>
        {
            data = businessList
        };

        return Ok(response);
    }
}

3. 序列化配置(可选)

如果你的项目默认序列化是大驼峰格式(字段首字母大写),可以在Program.cs中配置为小驼峰,确保返回的JSON字段名和DataTables要求的data一致:

builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
    });

扩展说明(可选)

如果后续要支持DataTables的分页、排序、搜索功能,可扩展包装类添加对应字段:

public class DataTablesResponse<T>
{
    public int draw { get; set; }
    public int recordsTotal { get; set; }
    public int recordsFiltered { get; set; }
    public List<T> data { get; set; }
}

这样就能完全适配DataTables的服务端处理模式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:55:31