ユーザーがデータを入力して送信ボタンをクリックする ASP.Net フォーム (Page1) があります。
Page1 の一部として、サーバーで検証を行う必要がある CustomValidator を含む、いくつかの Validator があります。
ユーザーが送信ボタンをクリックすると、Page1 への投稿が行われ、検証ルーチンがサーバー上で実行されます。ボタン クリック ルーチンで Page.IsValid をチェックしている限り、フォームは処理が成功したかどうかを認識します。
検証に合格しないと、すべてが適切に Form1 に戻り、エラー メッセージが表示されます。
フォームが検証に合格したら、ユーザーが入力したデータを 2 番目のフォーム (Page2) に渡し、ユーザーが Page1 に入力したデータに基づいて Page2 を正しくレンダリングできるようにします。
データを Page2 に渡す一般的に受け入れられている方法、または最善の方法はありますか? 私が知っているいくつかの方法を次に示します。
- クエリ文字列を使用して Page2 を呼び出します。場合によってはデータをユーザーに表示しないようにする必要があるため、これは機能しません。
- 送信ボタンで PostBackUrl を使用して Page2 に移動します。私の知る限り、これは正しく機能しません。これは、Page1 のサーバー側の検証ルーチンが実行されないためです。
- セッション変数を使用する: これが良くない特定の理由はわかりません。
- Server.Transfer を使用します。これについては、実際に経験がありません。
これはかなり標準的なことだと思いますが、正しい方法に関する情報を見つけるのに苦労しています。