У меня проблема с .net core 2.0 с таблицами данных.
Я пытаюсь сделать данные на стороне сервера доступными.
Вот мой код JavaScript.
$(document).ready(function () {
$('#myTable').dataTable({
serverSide: true,
paging: true,
searching: true,
lengthMenu: [[10, 25, 50,100], [10, 25, 50,100]],
pageLength: 10,
destroy: true,
ajax: {
type: "POST",
url: "@Url.Action("TableDatas", "Admin")",
datatype: "json",
contentType: 'application/json; charset=utf-8',
data: function (d) {
var postData = {
"request": d,
//Speacial Filter
"status" : "Something i am just trying."
};
return JSON.stringify(postData);
},
dataFilter: function (d) {
return d;
}
},
columns: [
{
name: 'orderid',
data: 'orderid',
title: "Sipariş No",
sortable: false,
searchable: true
},
{
name: 'tmno',
data: "tMNo",
title: "TMNo",
sortable: false,
searchable: true
},
{
name: 'member',
data: "member",
title: "Müşteri",
sortable: false,
searchable: true
},
{
name: 'price',
data: "price",
title: "Tutar",
sortable: false,
searchable: true
},
{
name: 'date',
data: "date",
title: "Sipariş Tarihi",
sortable: false,
searchable: true,
render: function (data, type, full, meta) {
return moment(data).format("DD-MM-YYYY");
}
},
{
name: 'status',
data: "status",
title: "Durum",
sortable: false,
searchable: true
}
]
});
});
Вот действие c #. Я использую DataTables nuget для него.
namespace DataTables.AspNet.Core
{
public interface IDataTablesRequest
{
int Draw { get; }
int Start { get; }
int Length { get; }
ISearch Search { get; }
IEnumerable<IColumn> Columns { get; }
IDictionary<string, object> AdditionalParameters { get; }
}
}
[HttpPost]
public IActionResult TableDatas(IDataTablesRequest request,string status)
{
//There are some searchin paging codes...
var response = DataTablesResponse.Create(request,result.TotalCount,result.FilteredCount, finaldata);
return new DataTablesJsonResult(response, true);
}
Когда я отлаживаю скрипт, есть постданные, и он конвертируется в Json. Есть данные, что я хочу. Есть изображение о вкладке сети из браузера.
Когда дело доходит до действий. Данные являются нулевыми.
У меня есть конфигурация при запуске.
services.AddMvc().AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
services.RegisterDataTables();
В противном случае, когда я пытаюсь Ajax Get без чего-либо. Нравится. Это работает.
ajax: "@Url.Action("TableDatas", "Admin")",
Но я хочу делать пост-звонки, потому что у меня есть пользовательские фильтры. Мне нужно отправить экстраполяции. Я пытался [FromBody] и т.д ...
Я что-то упустил, но чего я не знаю.