Tro*_*ant 6 c# asp.net session-variables
我想知道使用asp.net会话将变量从页面传递到页面的问题是什么.
我已经将代码删除到只有一个文本框,以查看最新情况.我只是想获取文本框的值并将其显示在确认页面上.单击该按钮时,它会将我转移到第二页,但标签为空白.是的,我的帖子后面的网址指向第二页.
这是按钮点击:
protected void submit_Click(object sender, EventArgs e)
{
string name = txtFirstName.Text.Trim();
Session["name"] = name;
}
Run Code Online (Sandbox Code Playgroud)
这是第二页的页面加载:
protected void Page_Load(object sender, EventArgs e)
{
lblName.Text = (string)(Session["name"]);
}
Run Code Online (Sandbox Code Playgroud)
除非我一直在看这个并且错过了什么.我已经从MSDN上阅读了"如何:从会话状态中读取值".
你说你已经将PostBackUrl设置为第二页.如果你打算这样做,你需要使用Page.PreviousPage来访问你的文本框.但这是最简单的方法:
首先,单独留下PostBackUrl.将PostBackUrl设置为第二页意味着您告诉SECOND PAGE处理按钮点击,而不是第一页.因此,您的会话变量永远不会被设置,并且当您尝试拉取它时为null.
这应该适用于你.
是的,您也可以使用QueryString执行此操作,但如果您不希望用户查看/编辑它,则会话变量更好.
protected void submit_Click(object sender, EventArgs e)
{
string name = txtFirstName.Text.Trim();
Session["name"] = name;
Response.Redirect("PageTwo.aspx");
}
Run Code Online (Sandbox Code Playgroud)
然后在第二页(你真的不需要ToString()):
protected void Page_Load(object sender, EventArgs e)
{
if (Session["name"] != null)
{
lblName.Text = Session["name"].ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑 - 确保您的按钮实际上被点击了.有人可以纠正我的错误,因为我在VB.NET中完成了大部分工作,而不是C#.但是,如果您未指定OnClick值,则不会调用您的函数.
<asp:Button ID="Button1" runat="server" Text="Click Me!" OnClick="submit_Click" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71458 次 |
| 最近记录: |