【发布时间】:2019-09-30 12:24:21
【问题描述】:
我正在尝试将数据表参数发送到服务器,但是过去在 .NET Framework 中工作的内容似乎在 .NET Core 中不起作用。似乎它只是无法映射主 DTParameters 对象中的对象,因为我得到了 Length、Draw、Start 的值。
DTParameters 类:
public class DTResult<T>
{
public int draw { get; set; }
public int recordsTotal { get; set; }
public int recordsFiltered { get; set; }
public IEnumerable<T> data { get; set; }
}
public abstract class DTRow
{
public virtual string DT_RowId
{
get { return null; }
}
public virtual string DT_RowClass
{
get { return null; }
}
public virtual object DT_RowData
{
get { return null; }
}
}
public class DTParameters
{
public int Draw { get; set; }
public DTColumn[] Columns { get; set; }
public DTOrder[] Order { get; set; }
public int Start { get; set; }
public int Length { get; set; }
public DTSearch Search { get; set; }
public string SortOrder
{
get
{
return Columns != null && Order != null && Order.Length > 0
? (Columns[Order[0].Column].Data + (Order[0].Dir == DTOrderDir.DESC ? " " + Order[0].Dir : string.Empty))
: null;
}
}
public int SearchOption { get; set; }
}
public class DTColumn
{
public string Data { get; set; }
public string Name { get; set; }
public bool Searchable { get; set; }
public bool Orderable { get; set; }
public DTSearch Search { get; set; }
}
public class DTOrder
{
public int Column { get; set; }
public DTOrderDir Dir { get; set; }
}
public enum DTOrderDir
{
ASC,
DESC
}
public class DTSearch
{
public string Value { get; set; }
public bool Regex { get; set; }
}
ajax 调用:
ajax: {
"type": "GET",
"url": '@Url.Action("GetCompanies", "Company")',
"data": function (data) {
return data;
}
我一直使用function (data) { return data = JSON.stringify(data); },但我必须在此处删除 stringify 以便至少将一些值发送到服务器。
在Startup.cs:
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2).AddJsonOptions(options =>
{
options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
});
最后,CompanyController:
public object GetCompanies(DTParameters param)
{
return _companyService.GetCompaniesForDatatable(param, CurrentClient);
}
param 的 Search 属性始终为空。
【问题讨论】:
-
我在 .NET Core 中使用了 github.com/ALMMa/datatables.aspnet。效果很好!你可以通过 Nuget 获得它
标签: c# .net asp.net-core datatable asp.net-core-2.2