如果我从字段中删除值并重新提交表单,请删除会话值
本文关键字:删除 提交 表单 会话 字段 如果 新提交 | 更新日期: 2023-09-27 18:09:03
我有一个asp.net
webform
,它存储会话中输入的详细信息,然后在稍后的确认页面上显示所有详细信息。这些作品都很好。如果用户导航回页面,详细信息仍然显示,但问题是:
用户场景
用户在非必填字段中输入详细信息并继续。该值将按预期显示在确认页面上。用户然后回到页面并删除非强制字段中的值并继续,但是删除的值仍然在我的确认页面上被删除。
我已经调试了它,首先我可以看到字段是空的。但是当代码落回我的submitbutton_click
时,它会重新添加它。
我的当前代码如下所示:
protected void Page_Load(object sender, EventArgs e)
{
if (Step01AddressBuildingname.Text == string.Empty && Session["Step01AddressBuildingname"] != null)
{
Step01AddressBuildingname.Text = Session["Step01AddressBuildingname"].ToString();
}
}
protected void Step01SubmitButton_Click(object sender, EventArgs e)
{
Session["Step01AddressBuildingname"] = Step01AddressBuildingname.Text;
}
从您的帖子中我可以看出,当您将Step01AddressBuildingname字段更新为空白并单击提交时,这并没有像预期的那样清除会话值。如果是这样,那是因为您没有在page_load事件中处理post。在asp.net webforms中,当表单提交到服务器时就会发生回发,在这种情况下,您只想处理表单提交,而不是作为标准加载页面。您可以通过检查页面上的IsPostBack属性来做到这一点。
在你的代码中,因为你没有检查这个属性,tep01AddressBuildingname.Text = Session["Step01AddressBuildingname"].ToString();
在提交按钮的点击事件处理程序之前被执行-因此值没有被删除。试试这个
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack) {
if (Step01AddressBuildingname.Text == string.Empty && Session["Step01AddressBuildingname"] != null)
{
Step01AddressBuildingname.Text = Session["Step01AddressBuildingname"].ToString();
}
}
}
protected void Step01SubmitButton_Click(object sender, EventArgs e)
{
Session["Step01AddressBuildingname"] = Step01AddressBuildingname.Text;
}