3

私は登録フォームを持っており、ユーザーを成功ページに転送して、電子メールが自分の電子メールに送信されたことを伝えたいと考えています。彼のメールを登録ページから成功ページに転送する必要があります。

Server.Transfer についてはわかりましたが、パラメーターの送信方法がわかりません。URL の情報を明らかにしたくないので、クエリ文字列を使用したくありません。

これを行う適切な方法は(可能であれば)何ですか?

4

6 に答える 6

6
Server.Transfer("destination.aspx", true)

上記のコードには、コントロールが転送されるページの名前と、転送先ページで現在のフォーム状態を保持することを示すブール値「True」が含まれていることがわかります。

于 2012-04-26T13:11:27.893 に答える
3

ログインページでプロパティを設定し、そこに電子メールを保存します。

これが完了したら、Server.Transfer("~/SuccessPage.aspx", true);

リダイレクトした他のページで、次のようなことを確認する必要があります。

if(this.PreviousPage != null) {
    ((LoginPageType)this.PreviousPage).MyEmailProperty;
}
于 2012-04-26T13:12:28.623 に答える
2

サーバー転送を使用する場合、実行を別のサーバー ハンドラーに移動するだけです。ユーザーには新しい URL やパラメーターが表示されないため、この転送を安全に行うことができます。

于 2012-04-26T13:16:15.597 に答える
2

むしろ違うやり方をお勧めします。

ユーザーが登録ボタンをクリックすると、すべてが確認され、現在のページから電子メールが送信されます (したがって、データを別のページに転送する必要はまったくありません)。すべてがうまくいった場合は、次のようにリダイレクトします。

Response.Redirect("/order/success.aspx");

何か問題があった場合 (検証エラー、電子メールの送信で例外が発生した場合) は、再試行するための適切なページにいます。ほとんどの場合、Server.Transfer はまったく使用しません。

于 2012-04-26T13:46:28.660 に答える
1

値をどこかに保持する必要があります。明らかなオプションは、Session オブジェクトまたはデータベースにあります。

于 2012-04-26T13:09:38.990 に答える