C# Jquery datatables服务器端不在控制器内调用操作
我正在学习ASP.NET核心MVC项目。问题是datatables不调用服务器端操作方法C# Jquery datatables服务器端不在控制器内调用操作,c#,ajax,datatables,asp.net-core-mvc,C#,Ajax,Datatables,Asp.net Core Mvc,我正在学习ASP.NET核心MVC项目。问题是datatables不调用服务器端操作方法 CrudController [HttpPost] public object GetStudents() { var test = student.GetAll(10, 0); //List<Student> the count result is 2 return new { draw = 2, recordsTotal = 2,
CrudController
[HttpPost]
public object GetStudents()
{
var test = student.GetAll(10, 0); //List<Student> the count result is 2
return new {
draw = 2,
recordsTotal = 2,
recordsFiltered = 2,
data = test
};
}
public IActionResult Index()
{
return View();
}
$(文档)中数据表的脚本。就绪
$("#example").DataTable({
"processing": true,
"serverSide": true,
"ajax": {
url: "@Url.Action("GetStudents", "Crud")",
type: "POST"
},
"columns": [
{ "data": "id" },
{ "data": "name" },
{ "data": "birthdate" },
{ "data": "active" }
]
});
上述代码不会产生错误。但是没有调用
GetStudents()
方法(我放置了一个断点)。它们怎么了?我觉得你的控制器定义有点不对劲
它应该返回json数据
public class CrudController : Controller
{
public ActionResult Index()
{
return View();
}
public JsonResult GetStudents()
{
try
{
var result = <data list>
return Json(result, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
//Log ex.Message
}
}
}
还可以使用chrome/fiddler的网络选项卡来检查请求。我觉得您的控制器定义有点错误 它应该返回json数据
public class CrudController : Controller
{
public ActionResult Index()
{
return View();
}
public JsonResult GetStudents()
{
try
{
var result = <data list>
return Json(result, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
//Log ex.Message
}
}
}
还可以使用chrome/fiddler的网络选项卡来检查请求。数据表不会调用方法
GetStudents
。另一方面,我使用$.getJSON
成功地调用了它。问题不在于返回值,而在于为什么datatables无法调用此方法。您是否尝试了我所说的方法?您的控制器正在返回一个对象,该对象实际上应该返回一个JSON。datatables没有调用方法GetStudents
。另一方面,我使用$.getJSON
成功地调用了它。问题不在于返回值,而是为什么datatables无法调用此方法。您是否尝试了我所说的方法?您的控制器返回的对象实际上应该返回一个jsonurl:“/Crud/GetStudents”您是否按照@AsifRaza的建议更改了url?您可能需要指定完整的url,而不仅仅是controller&method.url:“/Crud/GetStudents”您是否按照@AsifRaza的建议更改了url?您可能需要指定完整的url,而不仅仅是控制器和方法。
$(document).ready(function() {
$('#example').DataTable({
"ajax": {
"url": "/Crud/GetStudents",
"dataSrc": ""
},
"columns": [{
"data": "some col"
}, {
"data": "some other col"
},
.... ]
});
});