0
私は同じelemetsのcointainページに複数のajaxフォームを持っています。フォームの子要素と更新を検索するsucces関数がありますが、リクエストを送信したフォームのIDをどうにかして渡す必要があります。フォームから他の値と一緒にコントローラ、これを行うための最善の方法は何ですか?たぶんフォームに隠しフィールドを追加し、ページの読み込みでparentidを取得し、jQueryでこのフィールドに配置します。しかし、私はそれをうまくやっているjqueryを知らない。提出時にajaxフォームIDを渡す
@using (Ajax.BeginForm("Index", "Controller",new AjaxOptions { OnFailure = "error", OnSuccess ="sucess" }))
{
<input type="submit" name="value" class="up" value="1" />
<span class="result">0</span>
<input type="submit" name="value" class="down" value="-1" />
}
public ActionResult Index(int value ,string formID)
{
//do something
}
function sucess(arg) {
var json = $.parseJSON(arg.responseText);
var form = $("form#" + json.FormID);
var up = form.children('input.up');
var down = form.children('input.down');
form.children('span.result').replaceWith(json.Result);
if (json.Result == 1) {
up.addClass('active');
}
if (json.Result == -1) {
down.addClass('active');
}
}
アップデート:これは部分的に表示され、n回ロードされるため、ブラウザでページがレンダリングされるまでformIDを見つけることができません。
jqueryメッセージボックスプラグインに解析せずにオブジェクトを渡したとき、私のエラー機能に問題があったので、完了する必要があると思いました。 YesコントローラがJsonを返します。 – formatc
@ user1010609、はい、 'OnFailure'と' OnComplete'の中で引数を手動で解析する必要があります。 'OnSuccess' jQueryの内部だけがあなたのために解析します。 –
お世話になりました、ありがとうございます!トリガの失敗に戻るための最良の状態コードは何かを教えてください。私は現在Firebug(実際ではない)にエラーを表示するBad Requestを送信しています。 – formatc