自动重新发送页面信息
问题描述:
我已将此代码添加到主页面page_load事件以防止缓存。 (从随机的来源得到它。)自动重新发送页面信息
HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1))
HttpContext.Current.Response.Cache.SetValidUntilExpires(False)
HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches)
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache)
HttpContext.Current.Response.Cache.SetNoStore()
在母版,比如说处理信息后,两数相加和显示的总和,当我从母版导航离开,想回去使用浏览器的后退按钮,重新发送对话框出现'重新发送'和'取消'按钮。点击重新发送加载主页面以及其先前的信息(总和),并取消什么都不做,我要做的是隐藏或禁用对话框,并自动选择'重发',以便当用户点击浏览器的后退按钮他会自动重定向到以前的母版页,而不会显示对话框。 或者有没有类似效果的方法。或者这甚至是可能的。请回复..新手在这里。
答
浏览器显示此消息是因为您的页面POST
在点击按钮时返回到服务器。它发送输入值(两个数字相加),然后服务器响应结果。当你点击“返回”时,浏览器会提醒你,因为经常再次发现数据不好。例如,进行在线购买。
您可以通过在Button_Click
处理程序中放入Response.Redirect(...)
来解决此问题 - 这会发送新的GET
请求。我可以显示C#代码,我不知道VB.NET对不起:
public void Page_Load(object sender, EventArgs e) {
if (IsPostBack) return;
int num1, num2;
if (Int32.TryParse(Session["num1"], out num1) && Int32.TryParse(Session["num2"], out num2)) {
txtNum1.Text = num1.ToString();
txtNum2.Text = num2.ToString();
lblSum.Text = (num1 + num2).ToString();
}
}
internal void Button1_Click(object sender, EventArgs e) {
Session["num1"] = txtNum1.Text;
Session["num2"] = txtNum2.Text;
Response.Redirect(Request.Url.PathAndQuery);
}