1

これは 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: また、この質問を言い換えてより良い回答を得る方法についてのフィードバックをいただければ幸いです。

4

0 に答える 0