これは IE でのみ発生します。Chrome と Firefox は正常に動作します。ASP.NET MVC 3 と jQuery を使用しています。
ファイルをアップロードするフォームを含む jQuery ダイアログがあるため、ajaxSubmit を使用してフォームをサーバーに送信しています。クライアント側の検証は使用していませんが、モデルでサーバー側の検証を使用しています。
このコントローラー アクションの POST ハンドラーにブレークポイントを設定して、Visual Studio のデバッグ モードでコードを実行しています。ダイアログを表示し、無効であることがわかっている方法でフォームに入力します。[保存] をクリックすると、最初にアラート ('save') が表示され、次にアラート ('beforeSubmit') が表示され、次に ajaxSubmit が実行されて「サーバー」のブレークポイントに到達します。検証が失敗し、赤い検証メッセージが表示された新しいフォームが返されます。そこのどこかで、alert('success') と alert('complete') が表示されます。すべては順調です。次に、フォームのデータが有効になるように修正し、もう一度 [保存] をクリックします。
今回は alert('save') が表示され、それだけです。他には何もありません。他のアラートもブレークポイントも何もありません。Fiddler は POST も登録しません。繰り返しますが、これは IE でのみ発生します。Chrome と Firefox は正常に動作します。
助けてください。
function save() {
alert('save');
$('#household-member-form').ajaxSubmit({
url: '/Wizard/HouseholdMember',
target: '#dialog-household-income',
type: 'POST',
cache: false,
success: function () {
alert('success');
},
error: function () {
alert('error');
},
beforeSubmit: function () {
alert('beforeSubmit');
},
complete: function () {
alert('complete');
},
async: false
});
}
編集:コントローラーアクションにもこれがあります:
HttpContext.Response.Cache.SetNoStore(); HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
EDIT 2: また、この質問を言い換えてより良い回答を得る方法についてのフィードバックをいただければ幸いです。