如何在两个或多个aspx页面之间传递会话变量?

时间:2011-11-08 10:58:36

标签: asp.net

我的情景,

我正在使用asp.net 2.0。我有Site创建一个唯一的ID,它被插入数据库并显示在不可见的文本框中。现在我需要将此ID发送到下一页。我使用了Session(" MemberId")= Txtnewid.Text。它不工作当我分配给变量字符串时它显示零值。请帮我 。提前致谢

3 个答案:

答案 0 :(得分:3)

您根本不需要将值存储在文本框中。您需要做的就是获取id并在第一次创建时将其插入会话中;对于同一页面或您网站中任何其他网站上的后续请求,您可以通过执行以下操作来访问此ID:

string id = Session["MemberId"] as string;

或者用Vb语法:

dim id as String = Session("MemberId")

答案 1 :(得分:2)

假设代码隐藏中的C#,将会话变量设置为: -

      Session["MemberId"] = "MemberId";

将其恢复到下一页; -

 if (Session["MemberId"] != null)
  {
    textBox1.Text = "Successfully retrieved " + (string)Session["MemberId"];
  }

请阅读ASP.NET Session State

答案 2 :(得分:2)

有多种方法可以将值从一个页面传输到另一个页面。最常用的方法是

  1. 会话
  2. 查询字符串
  3. 1.aspx.cs //第一页

    Guid uniqueid = new Guid();
    
    //Above code line will generate the unique id
    
    string s_uniqueid = uniqueid.ToString();
    
    // Convert the guid into string format
    
    Session.Add("MemberId",s_uniqueid);
    
    // Store the string unique id string to session variable so far called MemberId
    

    2.asp.cs //第二页

    string s_MemberId = Session["MemberId"].ToString();
    Now you can use this string member id for any other process.
    

    使用查询字符串将值从一个页面传输到另一个页面 如果您正在使用asp.net ajax开发应用程序,那么您需要使用Response.Redirect方法,否则使用Server.Transfer

    像 1.aspx.cs //第一页

    Guid uniqueid = new Guid();
    
    //Above code line will generate the unique id
    
    string s_uniqueid = uniqueid.ToString();
    

    如果您愿意,请使用s_uniqueid加密

    Response.Redirect("2.aspx?uid=" +s_uniqueid+ "");
    

    2.asp.cs //第二页

    string ss_uniqueid = Request.QueryString["s_uniqueid"];
    

    然后用于另一个过程