0

私のMVC3アプリでは、$。ajaxを使用してタイプJsonResultのメソッドを呼び出し、表示するデータを取得しています。

 function GetData(e) {
    var ordersId = e.row.cells[0].innerHTML; //this is fine
    $.ajax({
         type: "POST",
         url: "/Documents/GetDocumentData",
         contentType: "application/json; charset=utf-8",
         data: "{'id': '"+ordersId +"'}",
         dataType: "json",
         success: function (result) {
        //load window
         },
         error: function (result) {
            if (!result.success)
        //show error
         }
     });

これが私の行動です:

   [HttpPost] 
        public JsonResult GetDocumentData(string id)
    {
           //my code
           return Json(new { success = true});

        }

私の開発マシンでデバッグしているときは、正常に動作します。テストWebサーバーにデプロイしましたが、「404ページが見つかりませんdev / testwebsite / Documents / GetDocumentData」が表示されます。何か問題が発生した場合は、デバッグ時にこれを取得する必要がありますが、取得しません。なぜこのエラーが発生するのですか?ありがとう

4

1 に答える 1

0

その dev/testwebsite/Documents/GetDocumentData がサーバー上の URL である場合、javascript の URL が間違っています。

@Url.Action() を使用して、cshtml ページでこれらの URL を自動的に形成する必要があります。

例:

@Url.Action("actionName","controllerName"  )

したがって、特定のケースでは、次のようになります。

@Url.Action( "GetDocumentData", "Documents" )

JavaScript では、次のようになります。

function GetData(e) {
    var ordersId = e.row.cells[0].innerHTML; //this is fine
    $.ajax({
        type: "POST",
        url: '@Url.Action("GetDocumentData","Documents")',
        contentType: "application/json; charset=utf-8",
        data: "{'id': '"+ordersId +"'}",
        dataType: "json",
        success: function (result) {
        //load window
    },
    error: function (result) {
        if (!result.success)
        //show error
    }
});
于 2012-06-22T21:58:54.693 に答える