如何使用vb从asp.net中的一个页面到另一个页面取值

时间:2011-01-27 04:50:15

标签: asp.net vb.net querystringparameter

假设我在一个页面中有两个文本字段,一个用于名称,另一个用于年龄。

当我点击提交按钮时,这些值应显示在另一个页面中。任何人都可以举一个这样的例子......我完全糊涂了。

请帮帮我 谢谢

3 个答案:

答案 0 :(得分:2)

MSDN上有一个页面,How to: Pass Values Between ASP.NET Web Pages

  

即使源页面与目标页面位于不同的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>

注意Page元素的EnableViewStateMac="false"属性。这很重要。

代码隐藏,使用简单的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

那应该有效......:)

答案 1 :(得分:1)

将此代码放入提交按钮事件处理程序

  

private void btnSubmit_Click(object   sender,System.EventArgs e){   的Response.Redirect( “AnotherPage.aspx?NAME =”   + this.txtName.Text +“&amp; Age =”+ this.txtAge.Text); }

将此代码放入第二页page_load,

  

private void Page_Load(object sender,   System.EventArgs e){   this.txtBox1.Text =   的Request.QueryString [ “名称”];   this.txtBox2.Text =   的Request.QueryString [ “年龄”]; }

答案 2 :(得分:0)

你有几个选择。 **

<强> 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