2012-01-07 7 views
2

一般に私は値をクエリ文字列として渡していましたが、多くのセキュリティ上の問題があり、最大サイズが256バイト、つまり2048文字。以前のページを設定することで変数にアクセスするのは良いアプローチです。Asp.Net、前のページの変数にアクセスするのは良い方法ですか?

Sessions以外の変数を渡す方法はありますか?以前のページの概念は良いアプローチですか?ここで

答えて

0

は、MSDNのHow to: Pass Values Between ASP.NET Web Pagesからです:

あなたは は、リダイレクトが発生するかに依存し、その一部様々な方法でページ間で情報を渡すことができます。クエリを使用し

  • :次のオプションは、ソース・ページがターゲット・ページとは別のASP.NETのWeb アプリケーションである、またはソースページが ASP.NET Webページでない場合にあっても利用できます 文字列。
  • ソースページからHTTP POST情報を取得します。

次のオプションは、ソースとターゲットの ページが同じASP.NET Webアプリケーション内にある場合にのみ使用できます。

  • セッション状態を使用します。
  • ソースページでパブリックプロパティを作成し、ターゲットページのプロパティ値にアクセスします。
  • ソースページのコントロールからターゲットページのコントロール情報を取得します。

ですから、同じASP.NETアプリケーションPreviousPageプロパティは正確にあなたのケースのために設計されたものである必要があり仮定。あなたは別のアプローチを使用することができます

-1

、あなたはこのアプローチは、2つの以上の連続ページ間でデータを保存することは非常に便利であるあなたにcontext.items

内のデータを維持する必要があります。

Context.Items.Add("SOMETHING","somevalue"); 

あなたは** Server.Transferを代わりにResponse.Redirectをの

を使用する必要があります*:そのシンプルなアプローチは同じとして使用します。 Response.Redirectメソッドを使用すると、コンテキストがクリアされ、値を取得できなくなるためです。

希望すると、これが役立ちます。

+0

Server.Transferは深刻な制限です。これを行っても、PreviousPageプロパティを入力するのではなく、型指定されていないコレクションを使用する必要があるのはなぜですか? – Restuta

+0

はい、まあまあですが、その軽量のアプローチでは、Response.Redirect。彼は2ページ間でデータを渡すための良いアプローチを求めているので...私はそれが適切だろうと思う。 –

+0

ライトの重み付けは何ですか?メンテナンス性の面では、重く重いです。そして、これは重要です。 – Restuta

0

PreviousPageは、ページ間ポストバックでの使用を意図しています。それがあなたがやっていることなら、何も間違ってはいません。

ポストバックがない場合、前のページクラスのインスタンスへの参照には状態情報が含まれていてはなりません。

1つのページから別のページへのリンクを使用している場合は、セッション状態、Cookie、またはデータベースのようなものを使用することをお勧めします。リダイレクトを行っている場合、実際のリダイレクトの代わりにServer.Transfer()の使用を含むいくつかのオプションがあります。

関連する問題