【プロジェクト経験】——ASP.NETページ間転送

4745 ワード

最近のプロジェクトでは多くのページの値を伝える内容が含まれていますが、今日は、最もよく使われる集中ASPについてお話しします.NETページ間の値伝達のいくつかの方法.

一、QueryString伝値


QueryStringは、通常の値伝達に用いられる比較的多い方式であり、使用が比較的簡単であり、安全性の要求が高くない場合には数字やテキスト値を伝達するのが有効であるが、その値をアドレスバーに露出し、安全性は高くない.次に、オブジェクトを渡すことができません.
Demo:1、ソースページにURLアドレスを作成し、転送する値を書き出し、Response.Redirect(URL)URLにリダイレクト
private void Button1_Click(object sender, System.EventArgs e) 
{ 
  string s_url; 
  s_url = "b.aspx?name=" + "   "; 
  Response.Redirect(s_url); 
}

2、新しいページでRequestを使う.QueryString[“name”];Urlで渡された値の取得
private void Page_Load(object sender, EventArgs e) 
{ 
  lblName.Text = Request.QueryString["name"]; 
}


二、Cookie


これも一般的に使われている方法で、Cookieはユーザーブラウザに小さなブロックの情報を格納したり、ユーザーがあるサイトにアクセスしたときのユーザーのID、ユーザーの好みなど、ユーザーの関連情報を保存したりするために使用され、ユーザーが次回アクセスすると検索によって以前の情報を得ることができます.したがってCookieはページ間で値を渡すこともできます.CookieはHTTPヘッダを介してブラウザとサーバの間を往復する.Cookieには文字列の値しか含まれません.Cookieに整数値を格納するには、文字列の形式に変換する必要があります.
クッキーはクライアントに置かれ、ASP.とNET内の内蔵オブジェクトRequestを併用します.その使用は非常に簡単で、ユーザーの状態を維持するのによく使われる方法です.
Demo:1、ソースページに渡す名前と値を作成してCookieオブジェクトを構築します.
private void Button1_Click(object sender, System.EventArgs e)
{
  HttpCookie objCookie = new HttpCookie("myCookie","Hello,Cookie!");
  Response.Cookies.Add(objCookie); 
}

2.宛先ページのコードでCookieオブジェクトを使用して渡された値を取り出す.
string myName1Value;
myName1Value = Request.Cookies[ "myCookie" ].Value;

三、Session

Session        ,   Application  ,       ,                 。Session Cookie         ,Cookie       , session        。

Sessionはシンプルで、シンプルなデータ型だけでなく、オブジェクトも転送でき、転送データ量の大きさに制限はありません.しかし、大量のデータを格納すると、サーバリソースが消費されすぎます.
Demo: 1.ソースページのコードに渡す名前と値を作成してSession変数を構築
private void Button1_Click(object sender, System.EventArgs e) 
{ 
  Session["name"] = Label.Text; 
}

2、目的ページのコードでSession変数を使って伝達された値を取り出す
private void Page_Load(object sender, EventArgs e) 
{ 
  string name; 
  name = Session["name"].ToString(); 

注意すべきは、Sessionは使用しない時、すべてを破棄することができます:Session.Clear(); 破棄するRemove(“SessionName”)

四、アプリケーション


Applicationオブジェクトの役割範囲は、グローバル全体、つまりすべてのユーザーに有効です.グローバル変数を使用するのと同様に、アプリケーションのライフサイクル全体で有効であるため、異なるページでアクセスできます.Session変数との違いは、前者はすべてのユーザが共有するグローバル変数であり、後者は各ユーザ独自のグローバル変数である.
Applicationは使用が簡単で、簡単なデータとオブジェクトを転送することができますが、Sessionに教えるにはサーバリソースが少ないです.しかし、グローバル変数として誤操作されやすいため、単一ユーザが使用する変数は一般的にApplicationでは使用できない.
Demo:1、渡す名前と値を作成してApplication変数を構築
private void Button1_Click(object sender, System.EventArgs e) 
{ 
  Application["name"] = Label1.Text; 
}

2、目的ページのコードでApplication変数を使用して伝達された値を取り出す
private void Page_Load(object sender, EventArgs e) 
{ 
  string name; 
  Application.Lock(); 
  name = Application["name"].ToString(); 
  Application.UnLock(); 
}

注意:同時修正を防止するために、lockメソッドとunlockメソッドを使用してロックとロックを解除することがよくあります.
今日はこの4つのよく使われるページ間の値伝達方法を簡単に紹介します.もっと多くの方法を紹介します.私の次のブログに注目してください.