在asp.net中使用会话

时间:2009-05-22 17:25:20

标签: asp.net session-state

我希望我在pageA上的文本框中输入的数据可以在pageB

上访问

例如:用户在第A页的文本框中输入他们的姓名

第B页说Hello(他们在文本框中输入的信息)

我听说这可以通过使用会话来完成,但我不知道如何。

有人可以告诉我如何设置会话以及如何在其中存储数据? 谢谢!

5 个答案:

答案 0 :(得分:5)

Session["valueName"]=value; 

Session.Add("valueName",Object);

并且您可以检索标签中的值(例如)

/*if String value */     
Label1.Text=Session["valueName"].ToString();

Label1.Text=Session.item["valueName"].ToString();

您也可以通过;

删除会话
/*This will remove what session name by valueName.*/
 Session.Remove( "valueName"); 

/*All Session will be removed.*/ 
Session.Clear(); 

答案 1 :(得分:4)

// Page A on Submit or some such
Session["Name"] = TextBoxA.Text;

// Page B on Page Load
LabelB.Text = Session["Name"];

默认情况下启用会话。

答案 2 :(得分:1)

是的,你可以像JohnOpincar那样做,但你不需要。

您可以使用跨页回发。在ASP.Net 2.0中,跨页回发允许发布到不同的网页,从而产生更直观,结构化和可维护的代码。在this article中,您可以浏览跨页回发机制的各种选项和设置。

您可以使用目标页面中的以下代码访问源页面中的控件:

protected void Page_Load(object sender, EventArgs e)
{
    ...
    TextBox txtStartDate = (TextBox) PreviousPage.FindControl("txtStartDate ");
    ...
}

答案 3 :(得分:0)

您可以使用会话执行此操作,但如果您是ASP.NET 2.0或更高版本,也可以使用跨页面回发

http://msdn.microsoft.com/en-us/library/ms178139.aspx

if (Page.PreviousPage != null) {
    TextBox SourceTextBox = 
        (TextBox)Page.PreviousPage.FindControl("TextBox1");
    if (SourceTextBox != null) {
        Label1.Text = SourceTextBox.Text;
    }
}

答案 4 :(得分:0)

甚至有一种更简单的方法。使用查询字符串:

在第A页:

<form method="get" action="pageB.aspx">
    <input type="text" name="personName" />
    <!-- ... -->
</form>

在第B页:

Hello <%= Request.QueryString["personName"] %> !