.NET C#メソッドの5種類の値渡しパラメータC#のページの6つの方法の間の値を渡します

.NET C#でページ間を通過するパラメータ値によって6つのメソッド

 

1.QueryStringは値によって非常に単純な方法で、彼は、ブラウザのアドレスバーに表示される値を転送することができます。変速機は、単純な値または多かれ少なかれ厳しい安全構造である場合、この方法を用いることができます。しかし、配列またはオブジェクトを渡すためには、この方法で有する使用することができません。次に例を示します。

Ctrl + Cを押してコードをコピーします
Ctrl + Cを押してコードをコピーします

値と分類された後のことで、クエリのような形式を取得します:

コードをコピー
//ポストリクエスト
文字列名=リクエスト[ "名前"]のtoString();. 
Request.Form.Get文字列名=( "名前")のtoString(); 
// GETリクエストの
文字列名=場合、Request.QueryString [ "名前" ] .toString(); 
しかし、私はそれがポストされ、値によって渡されるかどうかに関係なく利用可能であることがわかっ
=リクエスト[「名前」列名 ]のtoString();
コードをコピー

フォーム以下のように要約点の様式で提出GETとPOSTの違い: 
1.後にサーバが送信するデータ、データがサーバーから取得され得ます。 
パラメータは、フォーム送信URLのデータキューACTION属性に追加され得る。2. URLで見ることができるフォーム-1の対応の中の様々なフィールドと値で参照します。その内容と様々な分野へのHTTPポスト機構を介してポストは、属性が参照ACTIONで送信フォームHTML HEADER URLアドレスに配置されます。ユーザーは、このプロセスは表示されません。 
GET実施の形態3.、ポストの実施形態のサーバー場合、Request.QueryString変数の値の取得は、サーバがあるRequest.Formから提出されたデータを取得します。 
データ転送量が2キロバイトより大きく、小型ではありません取得4。データ伝送を大量に投稿し、一般的に無制限にデフォルト設定。しかし、理論的には、IIS4 80キロバイトの最大量、100キロバイトのためIIS5。 
5. GETのセキュリティは非常に低く、ポスト高度なセキュリティです。

 

2.アプリケーションオブジェクト変数を使用します

  適用範囲は、すべてのユーザーに対して有効である全体のグローバルApplicationオブジェクト、です。彼らの通常の方法とUNLOCKとロック。

コードをコピー
a.aspx的C#代码
プライベートボイドのButton1 Click(オブジェクト送信者、System.EventArgs e)の
 { 
     アプリケーション[ "名前"] =ます。Label1.Text。
     Server.Transferを( "b.aspx"); 
 } 
b.aspx中C#代码
プライベートボイドをPage_Load(オブジェクト送信者、のEventArgs電子)
 { 
     文字列名。
     Application.Lock(); 
     名前=アプリケーション[ "名前"] ToStringメソッド()。
     Application.UnLock(); 
 }
コードをコピー

3.セッション変数

  おそらくこれは、あなたが最も一般的な使用法を使用間違いであり、その過剰ストレージは、サーバーのメモリリソースの枯渇につながることができますので、その動作は、個々のユーザーに作用する、アプリケーションと同様です。

コードをコピー
a.aspx的C#代码
プライベートボイドのButton1 Click(オブジェクト送信者、System.EventArgs e)の
 { 
     セッション[ "名前"] = Label.Text。
 } 
b.aspx中C#代码
プライベートボイドをPage_Load(オブジェクト送信者、のEventArgs電子)
 { 
     文字列名。
     名前=セッション[ "名前"] ToStringメソッド()。
 }
コードをコピー

4.オブジェクト変数のクッキー

  これはクッキーがクライアントに格納され、セッションはサーバー側に保存されていること、それもすべてのユーザーのためにあるが、本質的な違いがあると私たちはしばしば、方法、およびセッションを使用し、です。そして、組み込みオブジェクトASP.NETクッキーの使用で同点に使用するための要求。

コードをコピー
a.aspx的C#代码
ます。private voidのButton1 Click(オブジェクト送信者、System.EventArgs e)の
 { 
     HttpCookie cookie_name =新HttpCookie( "名前"); 
     cookie_name.Value =ます。Label1.Text。
     Reponse.AppendCookie(cookie_name)。
     Server.Transferを( "b.aspx"); 
 } 
b.aspx中C#代码
プライベートボイドをPage_Load(オブジェクト送信者、のEventArgs電子)
 { 
     文字列名。
     名前= Request.Cookie [ "名前"] Value.ToString()。
 }
コードをコピー

5.方法Server.Transferを

  この方法は、この表面が完全に似ているように、画像オブジェクトプレーンが使用されているフローにページ応答を使用して、新しいページ前Server.Transferメソッドを使用して別のページに現在のページから向けフローを開発すると言うことができますシンプルかつ効果的なオブジェクト、。

コードをコピー
a.aspx的C#代码
公共の文字列の名前は
 { 
     {リターンます。Label1.Textを得る;} 
 } 
 プライベート無効のButton1 Click(オブジェクト送信者、System.EventArgs e)の
 { 
     Server.Transferを( "b.aspx"); 
 } 
b.aspx中C#代码
プライベートボイドをPage_Load(オブジェクト送信者、のEventArgs電子)
 { 
     newWeb。//实例A窗体
     newWeb =(ソース)Context.Handler。
     文字列名。
     名前= newWeb.Name。
 }
コードをコピー

 

ここでは伝統的な価値観のいくつかの利点と欠点があります

クッキー
     方法:クライアントデータの古典的な方法が存在します。
     短所:低セキュリティ、クライアントで設定された制限、20クッキーを残りのサイト、4096バイトの容量を持つ各。

セッション
     モード:ユーザデータがサーバーに保存されています。
     特徴:asp.netセッションはストレージを設定することができ、場所、セッションIDの保存は依存クッキーです。
             あなたは、オブジェクトを直接保存することができます。 
     デメリット:ASP.NETは、障害隠されている
キャッシュ
     方式を:データ・サーバ・キャッシュに格納されたユーザデータを。 
     特徴:大幅に効率を向上させることができます。あなたは、オブジェクトを直接保存することができます。
Applictionの
     方法:グローバル変数に対応し、データをそこに格納します。 
     特長:あなたは、オブジェクトを直接保存することができます。サイト間でデータを共有
ViewStateの
     方法:asp.netステータスページを復元するためのユニークな機構。 
     特長:各コントロールと_ViewState隠されたフィールドの存在のためにその蓄積されたデータのシリアライズ名用のページを。
     短所:HTML、安全性の低いがあります。あなたは、暗号化と認証を設定することができますが、データの量が大幅に増加し、効率に影響を与えます。
静的
     モード:データは静的変数に格納されています。 
     特長:効率を改善する助けを。
     短所:大きなリスク原因、ページまたは障害の間のユーザデータの原因となります適切に使用した場合。この値を変更するには、単一のユーザーのための推奨割り当て、一度だけ、絶対禁止。

1.QueryStringは値によって非常に単純な方法で、彼は、ブラウザのアドレスバーに表示される値を転送することができます。変速機は、単純な値または多かれ少なかれ厳しい安全構造である場合、この方法を用いることができます。しかし、配列またはオブジェクトを渡すためには、この方法で有する使用することができません。次に例を示します。

Ctrl + Cを押してコードをコピーします
Ctrl + Cを押してコードをコピーします

値と分類された後のことで、クエリのような形式を取得します:

コードをコピー
//ポストリクエスト
文字列名=リクエスト[ "名前"]のtoString();. 
Request.Form.Get文字列名=( "名前")のtoString(); 
// GETリクエストの
文字列名=場合、Request.QueryString [ "名前" ] .toString(); 
しかし、私はそれがポストされ、値によって渡されるかどうかに関係なく利用可能であることがわかっ
=リクエスト[「名前」列名 ]のtoString();
コードをコピー

フォーム以下のように要約点の様式で提出GETとPOSTの違い: 
1.後にサーバが送信するデータ、データがサーバーから取得され得ます。 
パラメータは、フォーム送信URLのデータキューACTION属性に追加され得る。2. URLで見ることができるフォーム-1の対応の中の様々なフィールドと値で参照します。その内容と様々な分野へのHTTPポスト機構を介してポストは、属性が参照ACTIONで送信フォームHTML HEADER URLアドレスに配置されます。ユーザーは、このプロセスは表示されません。 
GET実施の形態3.、ポストの実施形態のサーバー場合、Request.QueryString変数の値の取得は、サーバがあるRequest.Formから提出されたデータを取得します。 
データ転送量が2キロバイトより大きく、小型ではありません取得4。データ伝送を大量に投稿し、一般的に無制限にデフォルト設定。しかし、理論的には、IIS4 80キロバイトの最大量、100キロバイトのためIIS5。 
5. GETのセキュリティは非常に低く、ポスト高度なセキュリティです。

 

2.アプリケーションオブジェクト変数を使用します

  適用範囲は、すべてのユーザーに対して有効である全体のグローバルApplicationオブジェクト、です。彼らの通常の方法とUNLOCKとロック。

コードをコピー
a.aspx的C#代码
プライベートボイドのButton1 Click(オブジェクト送信者、System.EventArgs e)の
 { 
     アプリケーション[ "名前"] =ます。Label1.Text。
     Server.Transferを( "b.aspx"); 
 } 
b.aspx中C#代码
プライベートボイドをPage_Load(オブジェクト送信者、のEventArgs電子)
 { 
     文字列名。
     Application.Lock(); 
     名前=アプリケーション[ "名前"] ToStringメソッド()。
     Application.UnLock(); 
 }
コードをコピー

3.セッション変数

  おそらくこれは、あなたが最も一般的な使用法を使用間違いであり、その過剰ストレージは、サーバーのメモリリソースの枯渇につながることができますので、その動作は、個々のユーザーに作用する、アプリケーションと同様です。

コードをコピー
a.aspx的C#代码
プライベートボイドのButton1 Click(オブジェクト送信者、System.EventArgs e)の
 { 
     セッション[ "名前"] = Label.Text。
 } 
b.aspx中C#代码
プライベートボイドをPage_Load(オブジェクト送信者、のEventArgs電子)
 { 
     文字列名。
     名前=セッション[ "名前"] ToStringメソッド()。
 }
コードをコピー

4.オブジェクト変数のクッキー

  これはクッキーがクライアントに格納され、セッションはサーバー側に保存されていること、それもすべてのユーザーのためにあるが、本質的な違いがあると私たちはしばしば、方法、およびセッションを使用し、です。そして、組み込みオブジェクトASP.NETクッキーの使用で同点に使用するための要求。

コードをコピー
a.aspx的C#代码
ます。private voidのButton1 Click(オブジェクト送信者、System.EventArgs e)の
 { 
     HttpCookie cookie_name =新HttpCookie( "名前"); 
     cookie_name.Value =ます。Label1.Text。
     Reponse.AppendCookie(cookie_name)。
     Server.Transferを( "b.aspx"); 
 } 
b.aspx中C#代码
プライベートボイドをPage_Load(オブジェクト送信者、のEventArgs電子)
 { 
     文字列名。
     名前= Request.Cookie [ "名前"] Value.ToString()。
 }
コードをコピー

5.方法Server.Transferを

  この方法は、この表面が完全に似ているように、画像オブジェクトプレーンが使用されているフローにページ応答を使用して、新しいページ前Server.Transferメソッドを使用して別のページに現在のページから向けフローを開発すると言うことができますシンプルかつ効果的なオブジェクト、。

コードをコピー
a.aspx的C#代码
公共の文字列の名前は
 { 
     {リターンます。Label1.Textを得る;} 
 } 
 プライベート無効のButton1 Click(オブジェクト送信者、System.EventArgs e)の
 { 
     Server.Transferを( "b.aspx"); 
 } 
b.aspx中C#代码
プライベートボイドをPage_Load(オブジェクト送信者、のEventArgs電子)
 { 
     newWeb。//实例A窗体
     newWeb =(ソース)Context.Handler。
     文字列名。
     名前= newWeb.Name。
 }
コードをコピー

 

ここでは伝統的な価値観のいくつかの利点と欠点があります

クッキー
     方法:クライアントデータの古典的な方法が存在します。
     短所:低セキュリティ、クライアントで設定された制限、20クッキーを残りのサイト、4096バイトの容量を持つ各。

セッション
     モード:ユーザデータがサーバーに保存されています。
     特徴:asp.netセッションはストレージを設定することができ、場所、セッションIDの保存は依存クッキーです。
             あなたは、オブジェクトを直接保存することができます。 
     デメリット:ASP.NETは、障害隠されている
キャッシュ
     方式を:データ・サーバ・キャッシュに格納されたユーザデータを。 
     特徴:大幅に効率を向上させることができます。あなたは、オブジェクトを直接保存することができます。
Applictionの
     方法:グローバル変数に対応し、データをそこに格納します。 
     特長:あなたは、オブジェクトを直接保存することができます。サイト間でデータを共有
ViewStateの
     方法:asp.netステータスページを復元するためのユニークな機構。 
     特長:各コントロールと_ViewState隠されたフィールドの存在のためにその蓄積されたデータのシリアライズ名用のページを。
     短所:HTML、安全性の低いがあります。あなたは、暗号化と認証を設定することができますが、データの量が大幅に増加し、効率に影響を与えます。
静的
     モード:データは静的変数に格納されています。 
     特長:効率を改善する助けを。
     短所:大きなリスク原因、ページまたは障害の間のユーザデータの原因となります適切に使用した場合。この値を変更するには、単一のユーザーのための推奨割り当て、一度だけ、絶対禁止。

おすすめ

転載: www.cnblogs.com/yinjinli/p/12169553.html