0

MVC で次のストーリーを実現しようとしています。

  1. 顧客は通常のアクション/ビュー ページにアクセスし、フォームに入力します。送信ボタンをクリックして値をコントローラーに送り返すと、長時間実行されるバックグラウンド プロセスが開始されます。

  2. お客様は一時的な「処理中 - お待ちください」ページにリダイレクトされます。このページは、AJAX を使用して、ステータスの更新を定期的にポーリングします。

  3. 処理が完了したら、顧客を結果ページにリダイレクトします。

主な要件: お客様がステップ 3 でブラウザーの [戻る] ボタンをクリックした場合は、ステップ 1 に戻る必要があります。お客様にステップ 2 に進んでほしくないし、ステップ 2 がブラウザーの履歴に表示されないようにします。

恐ろしい「投稿された値の再送信」なしで、どうすれば上記を達成できるでしょうか? メッセージも?

ここでは、ポーリングの長所/短所についての議論を求めているわけではないことに注意してください。これが最善の解決策ではないことは承知しており、Signal R を使用してリファクタリングすることもできます。ストーリーは私にとって重要なことです。

4

2 に答える 2

2

ステップ 1 (フォームのあるページ) に AJAX メカニズムを適用し、AJAX を使用して情報をサーバーに POST し、操作の進行状況を定期的にポーリングします。実際にページをリロードしなくても、JavaScript を使用して「一時処理ページ」を動的に表示/非表示にすることができます。

于 2013-06-07T15:42:37.483 に答える