2017-01-11 3 views
2

私はここまで説明します。ASP.NET C#Ajaxコールエラー

私は自分のajaxからコントローラに値渡しを取得しようとしていて、console.logに値を渡しています。しかし、私はそれは私が500をエラー与えた値をCONSOLE.LOGしようとすると...

ここに私のコードです:

私は長い時間のためのPHP上でAJAXを行ってきた...しかし、私はまだですasp.net C#mvcの新しいので、私に同行してください。

AJAX:

$("#Property_ProvinceID").on("change", function() { 
    var $this = $(this); 
    var province_id = $this.val(); 
    var $url = "/Property/GetCities"; 
    alert("get:" + province_id); 
    $.ajax({ 
     url: $url, 
     type: 'POST', 
     dataType: 'json', 
     contentType: 'application/json; charset=utf-8', 
     data:{id: province_id}, 
     success: function (data) { 
      console.log(data); 
     } 
    }); 

}); 

CONTROLLER:

[HttpPost] 
public ActionResult GetCities(int id) 
{ 
    return Json(new { success = true }); 
} 

ここで私はしかし私のコントローラが悪いのか分からないエラーです。

POST http://localhost:43969/Property/GetCities 500(内部サーバーエラー )

+0

実際にGetCitiesアクションに当たっていますか?チェックするためにブレークポイントを設定してください。また、ActionFilterAttributeがあるかどうか確認してください。エラーが発生することがあります。 –

+0

@KimHoang私は、GetCitiesメソッドがPropertyControllerクラスの中に存在するということは本当に肯定的です。私はなぜそれがうまくいかないのかわかりません。コードは私には良いようです。 –

+0

もう1つ推測できましたあなたのprovince_idの値であれば、それはヌルであっても、無効な整数でなくてもよい。私はちょうどあなたの質問の情報に基づいてそれを提案することができます。 –

答えて

2

JSON文字列に送信されるデータを変換するためにJSON.stringifyを使用し、その後contentType: 'application/json; charset=utf-8'を使用している場合。 @StephenMuecke

によってコメントで述べたように(それがデフォルトapplication/x-www-form-urlencoded; charset=UTF-8'を使用するように)

$("#Property_ProvinceID").on("change", function() { 
    var $this = $(this); 
    var province_id = $this.val(); 
    var $url = "/Property/GetCities"; 
    alert("get:" + province_id); 
    var data = JSON.stringify({id: province_id}); 
    $.ajax({ 
     url: $url, 
     type: 'POST', 
     dataType: 'json', 
     contentType: 'application/json; charset=utf-8', 
     data: data, 
     success: function (data) { 
      console.log(data); 
     } 
    }); 

}); 

それは削除され、contentType: 'application/json; charset=utf-8'場合は文字列化する必要はありません。

+0

これはありがとうございます。最初にそれを文字列にする必要があります。私は '{id:province} 'で十分です。 –

+0

'{id:province}'はそれ単独でjavascriptの値です。 JSONに変換する必要があります。 – Nkosi

+0

私は再び....ありがとうございました... –

0

エラー機能を追加して、あなたのajaxのエラーをチェックすることができます。

Ex。

error: function(xhr, status, error) { 
    var err = eval("(" + xhr.responseText + ")"); 
    alert(err.Message); 
}