「ASP.NET 2005 ページ間データ受け渡し」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==ASP.NET 2005 ページ間データ受け渡し== [SCWCD]] ASP.NET 2005][ASP.NET][Visual Studio][C#][[[Java EE(SCWCD)] *http://msdn.microsoft.com/ja-jp/netframework/ee…」) |
|||
(同じ利用者による、間の4版が非表示) | |||
1行目: | 1行目: | ||
− | ==ASP.NET 2005 ページ間データ受け渡し== | + | ==[[ASP.NET 2005 ページ間データ受け渡し]]== |
− | [ | + | [ASP.NET 2005][ASP.NET][Visual Studio][C#][[SCWCD]|[Java EE(SCWCD)]] |
*http://msdn.microsoft.com/ja-jp/netframework/ee692374.aspx | *http://msdn.microsoft.com/ja-jp/netframework/ee692374.aspx | ||
− | ===Cookie=== | + | ===[[Cookie]]=== |
*Web アプリケーションは履歴やユーザー設定などのユーザー固有の情報を格納できます | *Web アプリケーションは履歴やユーザー設定などのユーザー固有の情報を格納できます | ||
− | * | + | *ブラウザは、[[Cookie]] をクライアント コンピュータで管理します |
− | * | + | *[[Cookie]]s というプロパティを公開する HttpResponse オブジェクトを使用してクライアントに送信されます |
− | *Web アプリケーションからブラウザに送信するすべての Cookie は、このコレクションに追加する必要があります | + | *Web アプリケーションからブラウザに送信するすべての [[Cookie]] は、このコレクションに追加する必要があります |
− | *Cookie | + | *Cookie は、[[ASP.NET]] ページをクライアントにレンダリングする前に作成する必要があります |
− | ====Cookie を記述するには、2 つの方法==== | + | ====[[Cookie]] を記述するには、2 つの方法==== |
− | =====Cookie のプロパティを直接 | + | =====[[Cookie]] のプロパティを直接 [[Cookie]]s コレクションに設定===== |
Response.Cookies["UserSettings"]["Font"] = "Arial"; | Response.Cookies["UserSettings"]["Font"] = "Arial"; | ||
− | ===== | + | =====Http[[Cookie]] オブジェクトのインスタンスを作成してから [[Cookie]]s コレクションに追加===== |
− | + | Http[[Cookie]] my[[Cookie]] = new Http[[Cookie]]("UserSettings"); | |
myCookie["Font"] = "Arial"; | myCookie["Font"] = "Arial"; | ||
− | Response. | + | Response.[[Cookie]]s.Add(my[[Cookie]]); |
23行目: | 23行目: | ||
====Session データの関連付け==== | ====Session データの関連付け==== | ||
*一意の識別子を使用して特定のブラウザ セッションに関連付けられます | *一意の識別子を使用して特定のブラウザ セッションに関連付けられます | ||
− | *既定では、この識別子はブラウザの無期限のセッション Cookie に格納 | + | *既定では、この識別子はブラウザの無期限のセッション [[Cookie]] に格納 |
− | *セッション識別子を | + | *セッション識別子を U[[R]]L に格納するようにアプリケーションを構成することもできる |
− | **cookieless 属性の | + | **cookieless 属性の UseDevice[[Profile]] の値を指定すると、ブラウザが Cookie をサポートしているかどうかを確認でる。 |
− | **cookieless 属性の AutoDetect の値を指定すると、ブラウザで Cookie が有効になっているかどうかも確認できる。 | + | **cookieless 属性の AutoDetect の値を指定すると、ブラウザで [[Cookie]] が有効になっているかどうかも確認できる。 |
− | ** | + | **UseDevice[[Profile]] を指定しCookie がサポートされている、または AutoDetect を指定したときに Cookie が有効ならセッション識別子を Cookie に格納 |
− | **それ以外の場合はセッション識別子を | + | **それ以外の場合はセッション識別子を U[[R]]L に格納します。 |
====値を読む==== | ====値を読む==== | ||
string firstName = (string)(Session["First"]); | string firstName = (string)(Session["First"]); | ||
39行目: | 39行目: | ||
===QueryString=== | ===QueryString=== | ||
− | * | + | *Http[[R]]equest.QueryString プロパティに、クライアントから送信されたクエリ文字列変数のコレクションを格納 |
− | === | + | ===Http[[R]]equest.Params === |
− | * | + | *QueryString、Form、ServerVariables、[[Cookie]]s の各項目が組み合わされたコレクションを取得 |
− | ===Session と Cookie と QueryString を利用する例=== | + | ===Session と [[Cookie]] と QueryString を利用する例=== |
====Defaut.aspx==== | ====Defaut.aspx==== | ||
=====画面===== | =====画面===== | ||
54行目: | 54行目: | ||
|- | |- | ||
|HyperLink1 | |HyperLink1 | ||
− | | | + | |Na[[vi]]gateUrl |
|~/Page2.aspx?state=1 | |~/Page2.aspx?state=1 | ||
|QueryStringの例 | |QueryStringの例 | ||
|- | |- | ||
|HyperLink2 | |HyperLink2 | ||
− | | | + | |Na[[vi]]gateUrl |
|~/Page2.aspx?state=2 | |~/Page2.aspx?state=2 | ||
|QueryStringの例 | |QueryStringの例 | ||
72行目: | 72行目: | ||
if (!IsPostBack) | if (!IsPostBack) | ||
{ | { | ||
− | // Cookie の設定 | + | // [[Cookie]] の設定 |
− | Response. | + | Response.[[Cookie]]s.Add(new Http[[Cookie]]("Data1", "Hello")); |
// Session の設定 | // Session の設定 | ||
Session["Data2"] = "こんにちは"; | Session["Data2"] = "こんにちは"; | ||
82行目: | 82行目: | ||
protected void Button1_Click(object sender, EventArgs e) | protected void Button1_Click(object sender, EventArgs e) | ||
{ | { | ||
− | // Cookie に値を設定 | + | // [[Cookie]] に値を設定 |
Response.Cookies["Data1"].Value = TextBox1.Text; | Response.Cookies["Data1"].Value = TextBox1.Text; | ||
// QueryStringを付加してリダイレクト | // QueryStringを付加してリダイレクト | ||
− | + | [[R]]esponse.[[R]]edirect("~/Page2.aspx?state=1"); | |
} | } | ||
protected void Button2_Click(object sender, EventArgs e) | protected void Button2_Click(object sender, EventArgs e) | ||
92行目: | 92行目: | ||
Session["Data2"] = TextBox1.Text; | Session["Data2"] = TextBox1.Text; | ||
// QueryStringを付加してリダイレクト | // QueryStringを付加してリダイレクト | ||
− | + | [[R]]esponse.[[R]]edirect("~/Page2.aspx?state=2"); | |
} | } | ||
104行目: | 104行目: | ||
Label1.Text = Request.QueryString["state"]; | Label1.Text = Request.QueryString["state"]; | ||
− | // Cookie を利用して受け渡された値を表示 | + | // [[Cookie]] を利用して受け渡された値を表示 |
Label2.Text = Request.Cookies["Data1"].Value; | Label2.Text = Request.Cookies["Data1"].Value; | ||
110行目: | 110行目: | ||
Label3.Text = (String)Session["Data2"]; | Label3.Text = (String)Session["Data2"]; | ||
− | // すべてのパラメータを含む | + | // すべてのパラメータを含む [[R]]equest.Params の内容を確認 |
StringBuilder sb = new StringBuilder(); | StringBuilder sb = new StringBuilder(); | ||
− | NameValueCollection p = | + | NameValueCollection p = [[R]]equest.Params; |
− | for (int i=0; i | + | for (int i=0; i < p.Count; i++) { |
− | sb.Append(String.Format("{0} = {1} | + | sb.Append(String.Format("{0} = {1}<br/>", p.GetKey(i), p.Get(i))); |
} | } | ||
Literal1.Text = sb.ToString(); | Literal1.Text = sb.ToString(); |
2020年2月16日 (日) 04:22時点における最新版
目次
ASP.NET 2005 ページ間データ受け渡し
[ASP.NET 2005][ASP.NET][Visual Studio][C#][[SCWCD]|[Java EE(SCWCD)]]
Cookie
- Web アプリケーションは履歴やユーザー設定などのユーザー固有の情報を格納できます
- ブラウザは、Cookie をクライアント コンピュータで管理します
- Cookies というプロパティを公開する HttpResponse オブジェクトを使用してクライアントに送信されます
- Web アプリケーションからブラウザに送信するすべての Cookie は、このコレクションに追加する必要があります
- Cookie は、ASP.NET ページをクライアントにレンダリングする前に作成する必要があります
Cookie を記述するには、2 つの方法
Cookie のプロパティを直接 Cookies コレクションに設定
Response.Cookies["UserSettings"]["Font"] = "Arial";
HttpCookie オブジェクトのインスタンスを作成してから Cookies コレクションに追加
HttpCookie myCookie = new HttpCookie("UserSettings"); myCookie["Font"] = "Arial"; Response.Cookies.Add(myCookie);
Session
- 複数の要求に対して一意のブラウザ セッションに関連付けられた情報を格納するためのセッション状態管理機能を提供
- HttpContext の Session プロパティまたは Page の Session プロパティを使用してアクセス可能な HttpSessionState クラスを使用してアクセス
Session データの関連付け
- 一意の識別子を使用して特定のブラウザ セッションに関連付けられます
- 既定では、この識別子はブラウザの無期限のセッション Cookie に格納
- セッション識別子を URL に格納するようにアプリケーションを構成することもできる
値を読む
string firstName = (string)(Session["First"]);
値を保存
Session["FirstName"] = firstName;
QueryString
- HttpRequest.QueryString プロパティに、クライアントから送信されたクエリ文字列変数のコレクションを格納
HttpRequest.Params
- QueryString、Form、ServerVariables、Cookies の各項目が組み合わされたコレクションを取得
Session と Cookie と QueryString を利用する例
Defaut.aspx
画面
コントロール | プロパティ | 値 | 内容 |
---|---|---|---|
HyperLink1 | NavigateUrl | ~/Page2.aspx?state=1 | QueryStringの例 |
HyperLink2 | NavigateUrl | ~/Page2.aspx?state=2 | QueryStringの例 |
ソース
protected void Page_Load(object sender, EventArgs e) { // Page(Webフォーム自身)のIsPostBack プロパティを調べて、 // ポストバックによる再表示か、初回表示かを確認 if (!IsPostBack) { // Cookie の設定 Response.Cookies.Add(new HttpCookie("Data1", "Hello")); // Session の設定 Session["Data2"] = "こんにちは"; } Label1.Text = Response.Cookies["Data1"].Value; Label2.Text = (String)Session["Data2"]; } protected void Button1_Click(object sender, EventArgs e) { // Cookie に値を設定 Response.Cookies["Data1"].Value = TextBox1.Text; // QueryStringを付加してリダイレクト Response.Redirect("~/Page2.aspx?state=1"); } protected void Button2_Click(object sender, EventArgs e) { // Session に値を設定 Session["Data2"] = TextBox1.Text; // QueryStringを付加してリダイレクト Response.Redirect("~/Page2.aspx?state=2"); }
Page2.aspx
画面
ソース
protected void Page_Load(object sender, EventArgs e) { // QueryString として 受け渡された値を表示 Label1.Text = Request.QueryString["state"]; // Cookie を利用して受け渡された値を表示 Label2.Text = Request.Cookies["Data1"].Value; // Session を利用して受け渡された値を表示 Label3.Text = (String)Session["Data2"]; // すべてのパラメータを含む Request.Params の内容を確認 StringBuilder sb = new StringBuilder(); NameValueCollection p = Request.Params; for (int i=0; i < p.Count; i++) { sb.Append(String.Format("{0} = {1}<br/>", p.GetKey(i), p.Get(i))); } Literal1.Text = sb.ToString(); }
実行
Default.aspx
Page2.aspx
© 2006 矢木浩人