假设我在一页中有两个文本字段,一个用于姓名,另一个用于年龄。
当我单击提交按钮时,这些值应该出现在另一个页面中。任何人都可以举出那个例子..我完全糊涂了。
请帮助我谢谢
假设我在一页中有两个文本字段,一个用于姓名,另一个用于年龄。
当我单击提交按钮时,这些值应该出现在另一个页面中。任何人都可以举出那个例子..我完全糊涂了。
请帮助我谢谢
MSDN 对此有一个页面,如何:在 ASP.NET 网页之间传递值:
即使源页面与目标页面位于不同的 ASP.NET Web 应用程序中,或者源页面不是 ASP.NET 网页,也可以使用以下选项:
- 使用查询字符串。
- 从源页面获取 HTTP POST 信息。
仅当源页面和目标页面位于同一 ASP.NET Web 应用程序中时,以下选项才可用。
- 使用会话状态。
- 在源页面中创建公共属性并访问目标页面中的属性值。
- 从源页面中的控件获取目标页面中的控件信息。
对于您的方案,听起来使用 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 页(接收页):
<%@ 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); }
将此代码放入第二页page_load,
private void Page_Load(object sender, System.EventArgs e) { this.txtBox1.Text = Request.QueryString["Name"]; 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