I'm new to web programming, recently started to learn asp.net. Could anyone explain to me what is a postback request and how it defers from simple (if I can call it so) request?
4 回答
微软试图让 web 编程有点像 windows 编程……它提出了 webforms。当您第一次从 asp.net 获取页面时,您会执行 GET,然后您会得到一个“webform”,它是一个带有按钮、文本框、组合框的网页,很像一个窗口对话框。
现在,microsoft 框架有一点魔力,您可以配置更改(如单击按钮或更改组合框)来进行回发。这意味着浏览器将 POST 包含更改的页面,然后将其转换为事件,例如文本更改、按钮单击或组合框更改。您可以处理它,然后它将更改的页面重新发送回浏览器。
所以基本上回发是触发点,您可以在使用网络表单时处理服务器上的事件。这并不是其他 Web 框架的工作方式。
简单的请求是“给我某某页面”。
回发请求是“给我某某页面(我已经在上面了),但是当您将其发回时,请相应地更改这些数据(这将是用户选择组合框或选中单选按钮或任何)。
当您编写 asp.net 代码时,您会将第一次访问页面时发生的所有内容page_load
放在
if (!postback)
{
}
这确保了当用户设置了上述选项时,应该在用户第一次访问页面时加载的代码不会发生
PostBack 是将 ASP.NET 页面提交到服务器进行处理的过程的名称。如果要根据数据库检查页面的某些凭据(例如验证用户名和密码)或进行一些计算,则会完成 PostBack。
这是客户端机器无法完成的事情,因此这些细节必须“回发”到服务器。
Postback
通常在您单击button
、radiobutton
或checkbox
(any other control
如果您OnClick
在标记中指定事件)时发生。如果在标记中指定,许多其他事件也会调用回发。
注意:当回发到服务器时,它也会处理page_Load
当前页面的事件。
在 ASP.NET 中,有一个叫做 PostBack 的东西。在经典的 ASP.NET WebForm中,整个页面内只能有一个<form>
元素。method="post"
每次您单击此表单内的按钮或执行某些操作时,ASP.NET 都会 POST 到同一个 WebForm。因此名称为 PostBack。所以基本上你将第一次使用 GET 请求来呈现 webForm,从现在开始,你在这个表单上所做的一切都会导致对自身的 POST 请求。
在普通的 Web 应用程序中,您可以<form>
在 HTML 中包含多个元素。每个表单都可以发布到不同的端点,一些使用 GET,另一些使用 POST 请求。