当前位置: 首页 > 编程语言 > C#

IsPostBack的真正含义是什么?分享

时间:2023-04-10 20:42:02 C#

IsPostBack的真正含义是什么?我很想知道Page.IsPostBack到底是什么意思。我完全了解它在标准ASP.NET页面中的日常使用,以指示用户正在将数据提交回服务器端。请参阅Page:IsPostBack属性,但在单击提交按钮时给出此HTML,将调用页面Page_Load方法,但Page.IsPostBack返回false。我不想添加runat=server。如何区分第一次加载的页面和客户端提交的请求?更新我添加了所以Request.Form有一个元素,并且Request.HTTPMethod是POST,但是IsPostBack仍然是错误的?一种方法是扩展ASP.NETPage类,“覆盖”IsPostBack属性,并让所有页面都派生自扩展的Page。publicclassMyPage:Page{publicnewboolIsPostBack{get{returnRequest.Form.Keys.Count>0&&Request.RequestType.Equals("POST",StringComparison.OrdinalIgnoreCase);}}}检查Request.Form集合看它是否非空。只有POST会将数据包含在Request.Form集合中。当然,如果没有表单数据,请求与GET是无法区分的。对于标题中的问题,当请求是来自服务器端表单控件的POST时,IsPostBack设置为true。只制作您的表单客户端,但失败了。在您的问题中包含的示例中,不涉及视图状态;服务器无法将此请求链接到以前的页面请求并将它们视为一个单元。导致按钮被点击的请求看起来像进入服务器的任何其他随机请求。通常,您可以将PostBack视为以下组合:HTTP请求方法等于“POST”HTTP标头HTTP_REFERER等于当前URL这不是100%万无一失的,它不考虑任何类型的任何状态(即使您不知道它可能是你想要的),但它是一个帖子,返回当前页面。您可以检查标头以查看输入控件是否返回值(如tvanfosson指出的那样使用Request.Forms)。但是,真正重要的问题是为什么您不想添加runat=server。ASP.NET(MVC除外)实现的整体页面处理大小取决于通过服务器处理页面输出以设置适当的回调客户端代码等。以上是C#学习教程:IsPostBack的真正含义是什么?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: