2011-05-05 19 views
1

なぜ私はいつも大変なトラブルを抱えていますか?私は私のother articleで問題が解決しなかったことを考えると、私は私が持っている...ちょうど右の値にはJavaScriptをコーディングすることを決めた:Ajax.BeginFormのコールバックが正しく機能しない

OnSuccess="alert('ok')", 
OnFailure="alert('failed')", 

ので、私の問題は、提出が正常に動作しています。レコードがデータベースに挿入され、コールバックを取得します...しかし、私は間違ったコールバックを取得します!レコードが挿入されても失敗する。どうぞ!

答えて

0

[OK]を、私はいくつかのことを考え出し:

  1. ONFAILURE =「handleErrorのは、」これを行うには正しい方法です(私は解決のために言及した他の記事を参照)
  2. ajaxContextはありませんでした私は実際にOnCompleteイベントに関数を接続していたので、get_response()メソッドを使用しました。 OnSuccessに接続すると、コントローラのメソッドJsonがネイティブに返す値を返します。
  3. データベースのエントリが失敗したときにOnSuccessハンドラが呼び出されました。これは私のコントローラメソッドがtry {} catch {} ingであったので失敗しなかったからです!私はまぬけさ:(ONFAILUREは、関数名とは対照的に、関数呼び出しがある理由
2

あなたはそれが失敗したと見なされます理由を把握するために、応答からデータを読み取ることができる必要があります:Fiddlerを使用し、応答を見て、...また

function handleError(ajaxContext) { 
    var response = ajaxContext.get_response(); 
    var statusCode = response.get_statusCode(); 
    alert("Sorry, the request failed with status code " + statusCode); 
} 

OnFailure="handleError", 

。ステータスコード、コンテンツタイプ、コンテンツがすべて期待どおりであることを確認してください。

+0

1.私は理解していない...私はそれがONFAILURE =「handleErrorの」することになったと思った? 2. ajaxContent doesnのget_response()メソッドが含まれているように見えます...これは、私のコントローラメソッドが返すオブジェクトの文字列表現であるresponseTextを含んでいます(逆参照できません)。エラーは、オブジェクト自体を返すメソッドです。 Microsoft CDNのjquery.unobtrusive-ajax.min.jsライブラリの最新バージョンを使用していますので、何が問題になるのでしょうか。 – ekkis

+0

私の悪い、私はコピー/ペーストしました。修正されました - 関数名でなければなりません(私は信じています)Fiddlerでコンテンツ/コンテンツタイプ/ステータスコードをチェックして、 ct。 –

関連する問題