私は、ASP.NETアプリケーション(C#/ MySQLバックエンド)に直面している問題の解決策を探しています。ASP.NETはブラウザ 'バック'を防ぎます
アプリケーションは、SQLデータベースにデータを挿入するために複数ステップのウィザードでWebフォームを使用します。さまざまなステップはjavascriptで駆動されるため、 '最後の'ステップまで 'submit'は実行されません。とにかく、最後のステップの直後にユーザーがブラウザの「戻る」ボタンをクリックすると、フォームが再送信され、SQL INSERTが再度トリガーされて元のレコードの二重引用符が作成されます。
ウィザードが「最後の」ステップに達するまで、フォームのステップを追跡するために、Ajaxベースのメカニズムを使用することを強くお勧めします。同じAjax関数のあと、私はフォームの再送信を防ぎ、Dupesを防ぎます。
私は明らかな理由から、戻るボタンを無効にするためにJavaScriptのトリックを使用したくありません。
このソリューションの主な問題は、私がそれほど好きではないことと、アプリケーションフォームのウィザードが非常に明確になっていて、これが問題を引き起こす可能性があることです。
複雑なインフラストラクチャを構築することなくこうした問題を防ぐベストプラクティスはありますか?
誤解を招き、不要になると思われるため、私はコードを掲載していません。
敬具、 マイク
を。それを処理する "公式の"方法はないので、私のアプローチは、Webアプリケーションをそれに対処させることです。 – Alexander
ブラウザの戻るボタンを無効にすることはできません。アプリケーション内のロジックのみを処理する必要があります。 –
@ Piyush Khatri ...あなたは私の質問を読んでいないようです。 私はバックボタンを無効にする方法を求めていません...私はそれを書きました。 実際の質問は、「再送信」問題を克服する戦略を定義する方法です。 私はこのような問題がビジネスロジックと干渉することなく修正できることは確かです。また、私は同じ問題を経験している唯一のASP.NETユーザーではないと確信しているので、誰かがそれを乗り越えるための手のひらな方法を定義していると見積もることができます。 – weirdgyn