请求不被视为回发,即使...

时间:2010-08-24 17:47:06

标签: asp.net html browser

a)在Asp.Net中,我们可以通过Page.IsPostBack属性检查请求是否是回发。但此属性从何处获取其值?那么,在传入请求中浏览器放置此值的位置是什么?

b)据我所知,点击重新加载按钮也会导致浏览器将表单数据发送回服务器。因此,触摸浏览器的reload按钮与按下submit按钮(嵌套在FORM元素中)相同?

c)假设浏览器第一次显示A.aspx并假设用户点击浏览器的reload按钮,那么我认为此请求将被Asp.Net视为回发(特别是因为浏览器也是发回任何form data),但事实并非如此。为什么呢?

感谢名单

1 个答案:

答案 0 :(得分:4)

IsPostBack属性仅查看请求是否为POST请求操作。如果是POST,则IsPostBack返回true。

在浏览器上点击重新加载/刷新通常不会将任何表单数据发送到服务器 - 大多数情况下这会导致GET请求(这是您第一次访问站点时发送的默认请求)。

如果单击由于POST操作而收到的页面上的刷新,则浏览器将询问用户是否要在再次执行POST请求之前再次提交数据。除非用户确认,否则浏览器不会重新提交任何表单数据(至少在IE,Firefox和Chrome中它是如何工作的)。

Fiddler是一个很好的工具来帮助解决这种情况。它位于浏览器和服务器之间的中间位置,您可以看到所有流量来回传输。您可以下载here