我遇到了一个奇怪的问题。每次刷新页面,IsPostBack
是假的。
为了确保我的内容或母版页中没有任何内容导致这种情况,我创建了一个空的 Web 表单并在 Debug模式下启动它。仍然,在回发时,我有 IsPostBack
设置为假。
我有 enableSessionState="true"
和 <sessionState timeout="30" />
在 web.config 中。
快把我逼疯了!
更新:我按 F5 刷新页面。根据答案,这不应导致回发。我想知道用户何时刷新页面(甚至手动)并防止对 db 进行一些修改)。
有解决方案吗?
最佳答案
刷新页面(按 F5 或浏览器中的刷新按钮)不是回发。单击按钮、更改下拉列表或页面上的某些其他事件导致数据发送到服务器(通过 HTTP POST,因此称为“回发”)时会发生回发
您的问题并不清楚您是手动刷新页面还是通过单击按钮或其他事件发回服务器。
由于您是手动刷新页面,IsPostBack
永远是假的。
ASP.NET 中有两种类型的请求(在某种意义上):
如果您想在任何一种情况下跟踪用户之前是否访问过某个页面,您都需要自己跟踪。您可以在 Session 中设置一个变量来执行此操作:
Session["UserHasVisitedThisPageBefore"] = true;
然后你可以检查它代替你当前的
IsPostBack
查看:if(Session["UserHasVisitedThisPageBefore"] != null && (bool)Session["UserHasVisitedThisPageBefore"])
{
// stuff here
}
关于asp.net - IsPostBack 总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6614097/