【发布时间】:2021-04-14 04:37:36
【问题描述】:
我有一个 Web 客户端,它使用 jQuery 数据表进行服务器端分页和排序。它通过查询字符串以特定方式发送参数:
这里是发送到服务器的订单参数示例:
&order[0][column]=1&order[0][dir]=asc&start=0&length=10&search[value]=&search[regex]=false&_=1618229879540
我很难在 ApiController 类中绑定这些参数。
控制器代码:
[HttpGet]
public async Task<ActionResult<DataTable<Audit>>> GetAudits([FromQuery]DataTableParams dataTableParams)
{
var audits = await _auditRepository.GetAuditsAsync(dataTableParams);
return Ok(audits);
}
参数类:
public class DataTableParams
{
public int Draw { get; set; }
public int Start { get; set; }
public int Length { get; set; } = 30;
public string Dir { get; set; }
public IEnumerable<DtOrder> Order { get; set;}
}
public class DtOrder
{
/// <summary>
/// Column to which ordering should be applied.
/// This is an index reference to the columns array of information that is also submitted to the server.
/// </summary>
public int Column { get; set; }
/// <summary>
/// Ordering direction for this column.
/// It will be dt-string asc or dt-string desc to indicate ascending ordering or descending ordering, respectively.
/// </summary>
public string Dir { get; set; }
}
我做错了什么?我试过 DtOrder[] 而不是 IEnumerable。在每种情况下,框架都无法绑定到 order 参数,lenght/count 为 0。
【问题讨论】:
标签: asp.net-core asp.net5