1 つのページに 2 つのテキスト フィールドがあり、1 つは名前用、もう 1 つは年齢用であるとします。
送信ボタンをクリックすると、これらの値が別のページに表示されます。誰でもその例を挙げられますか..私は完全に混乱しています。
助けてください ありがとう
1 つのページに 2 つのテキスト フィールドがあり、1 つは名前用、もう 1 つは年齢用であるとします。
送信ボタンをクリックすると、これらの値が別のページに表示されます。誰でもその例を挙げられますか..私は完全に混乱しています。
助けてください ありがとう
MSDNには、これに関するページがあります。方法:ASP.NET Webページ間で値を渡す:
ソースページがターゲットページとは異なるASP.NETWebアプリケーションにある場合、またはソースページがASP.NET Webページでない場合でも、次のオプションを使用できます。
- クエリ文字列を使用します。
- ソースページからHTTPPOST情報を取得します。
次のオプションは、ソースページとターゲットページが同じASP.NETWebアプリケーションにある場合にのみ使用できます。
- セッション状態を使用します。
- ソースページでパブリックプロパティを作成し、ターゲットページのプロパティ値にアクセスします。
- ソースページのコントロールからターゲットページのコントロール情報を取得します。
あなたのシナリオでは、最初のページにテキストボックスがあるので、POSTを使用するのが良い方法のように思えます。例:
先頭ページ:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication2.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Page 1</title>
</head>
<body>
<form id="form1" runat="server" action="WebForm2.aspx">
<div>
Name: <asp:TextBox ID="tbName" runat="server"></asp:TextBox><br />
Age: <asp:TextBox ID="tbAge" runat="server"></asp:TextBox><br />
<asp:Button ID="submit" runat="server" Text="Go!" />
</div>
</form>
</body>
</html>
action="WebForm2.aspx"
POSTを2番目のページに転送することに注意してください。コード開発プラットフォームはありません。
ページ2(受信ページ):
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm2.aspx.vb" Inherits="WebApplication2.WebForm2" EnableViewStateMac="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Page 2</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Literal ID="litText" runat="server"></asp:Literal>
</form>
</body>
</html>
EnableViewStateMac="false"
Page要素の属性に注意してください。それは重要です。
コードビハインド、単純なものを使用して値を取得するRequest.Form()
:
Public Class WebForm2
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
litText.Text = Request.Form("tbName") & ": " & Request.Form("tbAge")
End Sub
End Class
それはうまくいくはずです...:)
このコードを送信ボタンのイベント ハンドラに追加します。
private void btnSubmit_Click(object sender, System.EventArgs e) { Response.Redirect("AnotherPage.aspx?Name=" + this.txtName.Text + "&Age=" + this.txtAge.Text); }
このコードを 2 番目のページ page_load に配置します。
private void Page_Load(object sender, System.EventArgs e) { this.txtBox1.Text = Request.QueryString["名前"]; this.txtBox2.Text = Request.QueryString["Age"]; }
いくつかのオプションがあります。**
1.クエリ文字列を使用します。
(Cons)
- Text might be too lengthy
- You might have to encrypt/decrypt query string based on your requirement
(Pros)
- Easy to manage
2. セッションを使用する
(Cons)
- May increase processing load on server
- You have to check and clear the session if there are too many transactions
(Pros)
- Values from different pages, methods can be stored once in the session and retrieved from when needed