无法从 jquery 数据表客户端接收 IDataTablesRequest 中的附加参数

问题描述

这是我在客户端的数据表。无论我做什么,我都无法在 IDataTablesRequest 的附加参数中接收从客户端传递的参数。 我需要通过 frombody 来完成,因为将来我也需要为此数据表创建 API,因此我希望尽可能保留相同的代码

var headers = {};
var token = $('input[name="__RequestVerificationToken"]').val();
headers['__RequestVerificationToken'] = token;
    tblStudent = $("#tblStudent").DataTable({
        //responsive: true,autoWidth: false,ajax: {
            url: '/controller/method',type: "POST",headers: headers,async: true,data: function (d) {
                d.appJson = JSON.stringify({
                    someNumber: 123,someString: "hello",someNumbers: [1,2,3]
                });
            }           
        },conditionalPaging: true,bServerSide: true,pagingType: "numbers",info: false,bProcessing: true,bSearchable: true,order: [
            [3,"desc"]
        ],language: {
            emptyTable: "No record found."
        },columns: [{
            className: 'details-control',orderable: false,data: "",searchable: false,defaultContent: ''
        },{
            data: "fullRollNo",name: "fullRollNo",title: 'Roll Number',class: "text-left pl-3 align-middle  all"
        },{
            data: "fullName",name: "fullName",title: 'Name',{
            data: "enrollmentStatus",name: "enrollmentStatus",title: 'Status',class: "all",render: function (data,type,row,Meta) {

                if (type == 'display') {
                    //alert(data);
                    let labelData = data ? data : '';

                    return `<span class="label ${'stats'[labelData]} label-inline font-weight-bold label-lg">${labelData}</span>`;
                } else
                    return data;
            },},{
            data: "gender",name: "gender",title: 'Gneder',class: "text-left pl-3 align-middle all",],fnRowCallback: function (nRow,aData,idisplayIndex) {
            //alert("line 495 fnRowCallback");
            $(nRow).data("rowId",aData.Id);
            $("td:nth-child(2)",nRow).html(idisplayIndex + 1);
            return nRow;
        },//"drawCallback": function(settings) {
        //    $("input[data-bootstrap-switch]").each(function() {
        //        $(this).bootstrapSwitch({ 'state': $(this).prop('checked'),disabled: true });
        //    });
        //},initComplete: function (settings,json) {

        }
    });

这是服务器端,我可以在其中接收搜索值、排序列等所有内容。但附加参数总是得到 null

public async Task<JsonResult> GetStudents([FromBody] IDataTablesRequest request)
{
    var identity = (ClaimsIdentity)User.Identity;
    long.TryParse(identity.FindFirst(ClaimsConstants.ID).Value,out long ID);
    // nothing important here. Just creates some mock data.
    var data = await Task.Fromresult(_stdDbContext.table.Where(x => x.ID== ID).ToList()).ConfigureAwait(false);
   
    var filteredData = data.Where(_item => (_item.FullName.ToLowerInvariant().Contains(request.Search.Value.ToLowerInvariant())) || ((_item.FullRollNo != null) && (_item.FullRollNo.ToLowerInvariant().Contains(request.Search.Value.ToLowerInvariant()))));
   
    var dataPage = filteredData.Skip(request.Start).Take(request.Length);
    
    var response = DataTablesResponse.Create(request,data.Count(),filteredData.Count(),dataPage);
  
    return new DataTablesJsonResult(response);
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)