-1

私はデータテーブルにかなり慣れていないので、AJAX サーバー処理を使用してデータをテーブルにロードする必要があります。

GET リクエストを使用してみましたが、404 not found エラーが発生し、URL が不完全でした (URL にアクション名がありませんでした)。

GET リクエストの代わりに POST を使用することを推奨する同様の問題についての投稿を読みました。GET を使用すると、「null のプロパティ sError を読み取れません」というメッセージが表示され、何が起こるかわかりません。

コントローラーに到達することさえできないため、コントローラーでデバッグすることはできません。

以下は、datatables オブジェクトの初期化コードです。

 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

It was returning actually a 404 Not found exception, which was not caught because my action used POST request and the PageNotFound action in my Home Controller was targeted to GET requests only. Although I can't figure it out why I get the Not Found Response

于 2013-09-20T15:55:12.320 に答える