gpt4 book ai didi

c# - 在页面之间传递 session 变量

转载 作者:太空狗 更新时间:2023-10-29 21:44:58 25 4
gpt4 key购买 nike

我想知道我在使用 asp.net session 将变量从一个页面传递到另一个页面时遇到了什么问题。

我已将代码精简为一个文本框以查看发生了什么。我只是想获取文本框的值并将其显示在确认页面上。单击该按钮后,它会将我转到第二页,但标签是空白的。是的,我的回发 URL 指向第二页。

这是点击按钮:

protected void submit_Click(object sender, EventArgs e)
{
string name = txtFirstName.Text.Trim();
Session["name"] = name;
}

这是第二页的页面加载:

protected void Page_Load(object sender, EventArgs e)
{
lblName.Text = (string)(Session["name"]);
}

除非我一直在看这个很长时间并且错过了一些东西。我已经读过 "How to: Read Values from Session State"来自 MSDN。

最佳答案

您说您已将 PostBackUrl 设置为您的第二页。如果你打算那样做,你需要使用 Page.PreviousPage 来访问你的文本框。但这是最简单的方法:

首先,不要管 PostBackUrl。将 PostBackUrl 设置为您的第二页意味着您告诉第二页处理您的按钮点击,而不是第一页。因此,您的 session 变量永远不会被设置,并且在您尝试拉取它时为空。

这应该适合你。

是的,您也可以使用 QueryString 执行此操作,但如果您不希望用户看到/编辑它,那么 Session 变量会更好。

 protected void submit_Click(object sender, EventArgs e)
{
string name = txtFirstName.Text.Trim();
Session["name"] = name;
Response.Redirect("PageTwo.aspx");
}

然后在第二页(你真的不需要 ToString()):

 protected void Page_Load(object sender, EventArgs e)
{
if (Session["name"] != null)
{
lblName.Text = Session["name"].ToString();
}
}

编辑 -- 确保您的按钮点击确实被触发。有人可以纠正我的错误,因为我的大部分工作都是在 VB.NET 中完成的,而不是 C#。但是,如果您不指定 OnClick 值,则不会调用您的函数。

 <asp:Button ID="Button1" runat="server" Text="Click Me!" OnClick="submit_Click" />

关于c# - 在页面之间传递 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19668500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com