-1

我对数据表很陌生,我需要使用 AJAX 服务器处理将数据加载到表中。

我尝试使用 GET 请求,但收到 404 not found 错误,并且 URL 不完整(URL 中缺少操作名称)。

我阅读了一篇关于类似问题的帖子,建议使用 POST 而不是 GET 请求。使用 GET 我现在收到“无法读取 null 的属性 sError”,并且无法弄清楚会发生什么。

我无法在控制器中进行调试,因为它甚至没有到达那里。

这是我的数据表对象的初始化代码:

 oTable = $('#solutionsTable').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "bSort": false,
        "oLanguage": {
            "sSearch": "Search all columns:"
        },
        "bProcessing": true,
        // "bDeferRender": true,
        "bServerSide": true,
        "bAjaxSource": "AJAXGetUserData",
        "sServerMethod": "POST"
    });

这是控制器动作(虽然它没有到达那里)

 [HttpPost]
    public ActionResult AJAXGetUserData(jQueryDataTableParamModel param)
    { 
        var allUsers = CMSHelper.GetUsers(countries: User.IsInRole("Account Admin") ? CMSHelper.GetAdminCountries(User.Identity.Name).Select(c => c.Key).ToList() : null);
        var result = from u in allUsers 
                     select new string[] {Convert.ToString(u.userId), u.userName, u.roleId.ToString(), u.type, u.isActive.ToString(), u.firstName, u.lastName, 
                     u.email, u.phone, u.Postcode, u.Street, u.Street, u.company, u.jobId.ToString(), u.job, u.country, u.countryName, u.City, u.LoginsNum.ToString(), 
                     u.LastLogin.ToShortDateString()};

        return Json(new
        {
            sEcho = param.sEcho,
            iTotalRecords = 97,
            iTotalDisplayRecords = 3,
            aaData = result
        }, JsonRequestBehavior.AllowGet);
    }
4

1 回答 1

0

它实际上返回了一个 404 Not found 异常,因为我的操作使用了 POST 请求,并且我的 Home Controller 中的 PageNotFound 操作仅针对 GET 请求,所以它没有被捕获。虽然我不知道为什么我得到 Not Found Response

于 2013-09-20T15:55:12.320 回答