Json Result DataTable JQuery 从 MVC 到 .NET CORE 2.2

Posted

技术标签:

【中文标题】Json Result DataTable JQuery 从 MVC 到 .NET CORE 2.2【英文标题】:Json Result DataTable JQuery from MVC to .NET CORE 2.2 【发布时间】:2019-09-28 11:15:43 【问题描述】:

我正在将一个填充 JQuery DataTables 的函数从 MVC 转换为 .NET CORE 2.2。 在 MVC 中它可以工作并且填充了网格,在 .NET CORE 中我看到 mvc JSONRESULT 命名空间不同,这可能是问题所在吗?编译没问题,数据在那里,但数据表告诉我好像没有找到 ID 字段。

为了让它在 .NET CORE 上编译,我必须在实例化 JsonResult 时插入一个 NULL 作为参数,并在最后删除 JsonRequestBehavior.AllowGet。

// MVC
public ActionResult GetData(searchNews searchAdv)

    // Initialization.   
    JsonResult result = new JsonResult();
    try
    
        // Initialization.
        string search = Request.Form.GetValues("search[value]")[0];
        string draw = Request.Form.GetValues("draw")[0];
        string order = Request.Form.GetValues("order[0][column]")[0];
        string orderDir = Request.Form.GetValues("order[0][dir]")[0];
        int startRec = Convert.ToInt32(Request.Form.GetValues("start")[0]);
        int pageSize = Convert.ToInt32(Request.Form.GetValues("length")[0]);

        // Loading.   
        List<Models.News> data = c.dsListaNews();

        // Loading drop down lists.   
        result = this.Json(new
        
            draw = Convert.ToInt32(draw),
            recordsTotal = totalRecords,
            recordsFiltered = recFilter,
            data = data
        , JsonRequestBehavior.AllowGet);
    

//ASP.NET CORE 2.2
public ActionResult GetData(searchNews searchAdv)

    // Initialization.   
    JsonResult result = new JsonResult(null);

    string search = Request.Form["search[value]"][0];
    string draw = Request.Form["draw"][0];
    string order = Request.Form["order[0][column]"][0];
    string orderDir = Request.Form["order[0][dir]"][0];
    int startRec = Convert.ToInt32(Request.Form["start"][0]);
    int pageSize = Convert.ToInt32(Request.Form["length"][0]);            

    // Loading.
    List<Models.News> data = c.dsListaNews(conn);

    // Loading drop down lists.   
    result = this.Json(new
    
        draw = Convert.ToInt32(draw),
        recordsTotal = totalRecords,
        recordsFiltered = recFilter,
        data = data
    );

    // Return info.   
    return result;

【问题讨论】:

与我们分享来自 mvc 和 mvc core 的 json 响应。是否有任何迷你演示可以重现您的问题? 在 JSON MVC Core 中,json 数据的字段名是小写的。现在好了!!!感谢Yoy @Tao Zhou 【参考方案1】:

我会试试的

return Json(new
            
                draw = Convert.ToInt32(draw),
                recordsTotal = totalRecords,
                recordsFiltered = recFilter,
                data = data
            );

不声明 JsonResult 变量并在 .Net-Core IActionResult 中使用而不是 ActionResult。

【讨论】:

没什么,同样的错误。 DataTables 警告:请求第 0 行第 0 列的未知参数“ID”

以上是关于Json Result DataTable JQuery 从 MVC 到 .NET CORE 2.2的主要内容,如果未能解决你的问题,请参考以下文章

C# DataTable转数组

DataTable转Json Json转DataTable

angularjs的jquery dataTable绑定问题

用 JSON 对象填充 DataTable

使用 JSON 文件填充 DataTable 列,但 DataTable 为空

求问 C#如何将json字符串转为datatable 求详细解答