2017-06-06 10 views
0
function GetSort() { 
    var url = '@Url.Action("GetSort", "CatMaster")';   
    $.ajax({ 
     type: "POST", 
     url: url, 
     dataType: "json", 
     data: null, 
     success: function (data) {     
      restrctTrans = false;    
      $("#Order").data("kendoNumericTextBox").value(data.NxtSort);     
     }, 
     error: function (data) { 
      alert('error'); 
     } 
    }); 
} 

コントローラからのAjaxの成功の上に得ていません。 しかし、コントローラは値を返します。 response.NxtSortの 値は1これはJSON値を返すコントローラメソッドを呼び出す化するJsonResult方法

+0

「成功」メソッドで警告を表示しましたか? – User3250

+1

'.value(data.NxtSort)ではなく' .value(data); ''でなければなりません。 – shakib

答えて

1

上記に置き換えます。しかし、値を返します コントローラ。 "

このシナリオは非常に真実ではありません。コントローラが何かを返す場合、それらの関数のうちの1つを実行します。彼らが実行しない唯一の方法は、何らかの理由で実際に実行する前にajax呼び出しが失敗した場合です。ブラウザの開発者ツールにエラーが表示されます。

これを確認するには、ブラウザのネットワークタブ(開発者ツールでは、ほとんどのブラウザでF12キーを押してください)を確認し、ajax呼び出しがブラウザに返されたHTTP応答を確認することができます。それが "200"の場合、 "成功"が確実に実行されます。それ以外の場合は、「エラー」が実行されます。 「成功」機能の開始に「警告」コマンドを入力して、それが実行されていることを証明することができます。

ブラウザのコンソールでもエラーがないか確認してください。私は、上記のようにコントローラからは単一の整数値を返すだけで、その名前のプロパティを含む可能性のあるオブジェクトではないので、data.NxtSortがJavaScriptコンテキストに存在しないと予測します。 "success"関数内のdataは単に値1の整数になります。これは、存在しないnxtSortプロパティにアクセスしようとすると、コンソールに「未定義の」エラーが表示されていることをほぼ確実に意味します。

これは、「成功」は、と呼ばれていますが、何も出力せずにクラッシュすることを意味します。

は、単にあなたの問題を解決する必要があります

$("#Order").data("kendoNumericTextBox").value(data); 

$("#Order").data("kendoNumericTextBox").value(data.NxtSort); 

を交換します。

今後、ブラウザの開発者ツールを使用してコードをデバッグする方法を学ぶと、このような単純な問題を避けることができます。特にChromeとFirefoxのツールは非常に強力で有益です。

1

この

[HttPost] 
public JsonResult GetSort() 
{ 
    var response = _catMaster.GetNextSort(); 
    return Json(response.NxtSort, JsonRequestBehavior.AllowGet); 
} 

$("#Order").data("kendoNumericTextBox").value(data); 

を試している「AJAXの成功とエラー関数が呼び出されていない

$("#Order").data("kendoNumericTextBox").value(data.NxtSort); 
関連する問題