JsonRequestBehaviour.AllowGet不工作

时间:2016-11-14 15:15:18

标签: datatables asp.net-core asp.net-core-mvc

我正在为JQuery Datatables服务器端工作。在创建json对象时,为了返回它,它不允许JsonRequestBehaviour.AllowGet。如果代码与下面的代码完全相同,那么我无法在客户端获取数据。

HTML:

<table class="table table-striped table-bordered table-hover" id="EmployeeTable">
                    <thead>
                        <tr>
                            <th>LastName</th>    
                        </tr>
                    </thead>
                    <tbody></tbody>
                </table>


JQuery的:

$('#EmployeeTable').DataTable({
            "processing" : true, // for show progress bar
            "serverSide" : true, // for process in server side
            "filter" : false,    // to disable search box
            "orderMulti" : false,// for disable multiple columns at once
            "ajax" : {
                "url" : "/Employee/GetEmployeeDataTable",
                "type" : "post",
                "datatype" : "json"
            },
            "columns" : [
                        { "data": "LastName", "orderable": true }
                   ]

        }); 

服务器端:

   [HttpPost]
            public ActionResult GetEmployeeDataTable()
            {
                // Get Parameters

                //get start(paging start index) and length(page size for paging)
                var draw = Request.Form["draw"].FirstOrDefault();
                var start = Request.Form["start"].FirstOrDefault();
                var length = Request.Form["length"].FirstOrDefault();

                //get sort column values
                var sortColumn = Request.Form["columns[" + Request.Form["order[0][column]"].FirstOrDefault()+"][name]"].FirstOrDefault();
                var sortColumnDir = Request.Form["order[0][dir]"].FirstOrDefault();

                int pageSize = length != null ? Convert.ToInt32(length) : 0;
                int skip = start != null ? Convert.ToInt32(start) : 0;
                int totalRecords = 0;

                var employees = getDataService.GetAllEmployees().Select(x => new {
                    x.LastName
                }).ToList();
                if(!(string.IsNullOrEmpty(sortColumn) && string.IsNullOrEmpty(sortColumnDir)))
                {
                    employees.OrderBy(x => sortColumn + " " + sortColumnDir);
                }
                totalRecords = employees.Count();
                var data = employees.Skip(skip).Take(pageSize).ToList();


                var result =  Json(new
            {   draw = draw,
                recordsFiltered = totalRecords,
                recordsTotal = totalRecords,
                data = data
            });
                return result;

            }

但如果我按照下面的说法

var result =  Json(new
            {   draw = draw,
                recordsFiltered = totalRecords,
                recordsTotal = totalRecords,
                data = data
            },JsonRequestBehaviour.AllowGet);

然后我无法在 mvc核心中找到这个东西。请帮帮我,我该怎么做。

1 个答案:

答案 0 :(得分:0)

在asp.net核心中,Json method没有带JsonRequestBehavior的重载。因此,您只需使用要传递的数据调用Json方法即可。

var result =  Json(new
            {   draw = draw,
                recordsFiltered = totalRecords,
                recordsTotal = totalRecords,
                data = data
            });
return result;