如果我从字段中删除值并重新提交表单,则删除会话值
Remove Session Value If I Delete Value From Field And Re-Submit Form
我有一个 asp.net
webform
存储在会话中输入的详细信息,然后在稍后的确认页面上显示所有详细信息。所有这些作品都很好。
如果用户导航回该页面,详细信息仍会显示,但我遇到的问题是:
用户场景
用户在 none 必填字段中输入详细信息并继续。该值按预期显示在确认页面上。然后用户返回页面并删除 none 必填字段中的值并继续,但删除的值仍会在我的确认页面上删除。
我已经调试过了,一开始我看到这个字段是空的。但是当代码回到我的 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;
}
从您的 post 中我可以看出,当您将 Step01AddressBuildingname 字段更新为空白并单击提交时,这并没有按预期清除会话值。如果是这样,那是因为您没有在 page_load 事件中处理 post。在 asp.net 网络表单 post 中,表单提交到服务器时会发生返回,在这种情况下,您只想处理表单提交,而不是按标准方式加载页面。您可以通过检查页面上的 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;
}
我有一个 asp.net
webform
存储在会话中输入的详细信息,然后在稍后的确认页面上显示所有详细信息。所有这些作品都很好。
如果用户导航回该页面,详细信息仍会显示,但我遇到的问题是:
用户场景
用户在 none 必填字段中输入详细信息并继续。该值按预期显示在确认页面上。然后用户返回页面并删除 none 必填字段中的值并继续,但删除的值仍会在我的确认页面上删除。
我已经调试过了,一开始我看到这个字段是空的。但是当代码回到我的 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;
}
从您的 post 中我可以看出,当您将 Step01AddressBuildingname 字段更新为空白并单击提交时,这并没有按预期清除会话值。如果是这样,那是因为您没有在 page_load 事件中处理 post。在 asp.net 网络表单 post 中,表单提交到服务器时会发生返回,在这种情况下,您只想处理表单提交,而不是按标准方式加载页面。您可以通过检查页面上的 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;
}