私はMVCで単純なajaxフォームを持っています。AjaxOptionsには、1つのことを実行する単純なjavascript関数に設定されたOnCompleteがあります-falseを返します。
@using (Ajax.BeginForm("Action", "Controller", new AjaxOptions { UpdateTargetId = "DivFormId", HttpMethod = "Post", OnComplete = "preventUpdate" }))
function preventUpdate(xhr) {
return false;
}
問題は、そのページがすでに更新されていることです。たとえば、コントローラーがポストバック後に部分ビューを返す場合もあれば、Jsonオブジェクトを返す場合もあります。部分ビューが返されたときにページを更新し、jsonが返されたときにダイアログウィンドウを表示したい。残念ながら、jsonが返されると、MSDNのようにOnComplete関数がfalseを返しても、ページをクリアします(jsonで更新します)。ページの更新をキャンセルするには、JavaScript関数からfalseを返します。
受信した応答に応じてページが更新されないようにするにはどうすればよいですか?
ありがとうございました!
- - - アップデート - - - -
これまでのところ、私は次の解決策を見つけました。UpdateTargetIdを指定しない場合は、必要な応答を手動で実行できます。ただし、falseを返すという動作はまだ文書化されていません。