我正在使用Asp.Net MVC,我只需要在服务器上获取列的集合,而不需要创建自定义模型绑定器。
如果我们查看Datatable文档,我们会看到
因此,我创建了一个模型:
也许有人知道为什么参数名称与官方文档不同,以及如何更改它。
我只看到了一个解决我的问题的方法
有什么想法如何在服务器上获得
如果我们查看Datatable文档,我们会看到
columns[i].name
参数。因此,我创建了一个模型:
public class DtSentParameters
{
public int Draw { get; set; }
public int Start { get; set; }
public int Length { get; set; }
public IList<DtColumn> Columns { get; set; } //We are talking about this collection
}
哪里 DtColumn
public class DtColumn
{
public string Name { get; set; }
public string Data { get; set; }
}
控制器
public JsonResult GetSales(DtSentParameters data)
{
//here placed some logic, but it's not important for us.
return Json(data);
}
Datatable JS
dataTable({
serverSide: true,
ajax: {
"url": url,
"type": "POST"
},
processing: true,
columns: [
{ data: "Date", name: "Date" },
{ data: "ClientAlias", name: "ClientAlias" }
],
scrollCollapse: true,
paging: true,
jQueryUI: false
});
一切都运行良好,我已经获得了我的数据并且可以使用分页。所以我正在尝试添加排序,但是出现了问题。我的 Columns.Count
等于2,但名称和数据为空。
我检查了 Request.Form.AllKeys
columns[i].name
看起来像 columns[i][name]
。顺便说一下,Request.Form["columns[1][name]"]
返回 ClientAlias,所以它有正确的值但错误的名称。也许有人知道为什么参数名称与官方文档不同,以及如何更改它。
我只看到了一个解决我的问题的方法
- 自定义模型绑定器。
有什么想法如何在服务器上获得
columns[i].name
而不是 columns[i][name]
吗?