asp.net - 我是否完全误解了 ASP.Net AJAX(更新面板)?

标签 asp.net ajax page-lifecycle

我可能误解了 AJAX 的工作原理 - 有人可以解释一下以下简化场景:

我有一个 ASP.NET Web 应用程序。在页面上,更新面板内有一个用户控件(未更改属性)和一个脚本管理器。

在用户控件和表单上有一个 a 标签,两者都在加载事件中将其文本设置为 DateTime.Now.ToString。还有一个按钮,它会导致用户控件中的回发。

当我单击该按钮时,正如我所期望的那样,用户控件内的标签会更新,并且页面上的一个标签现在也会更新。到目前为止一切顺利。

但是...页面上的页面加载事件确实使用 isPostBack = True 进行处理(这是我没想到的),并且看起来加载事件中发生的任何事情都不会得到处理推送回客户端(因为标签没有更新)。

我没想到在更新 AJAX 面板时会引发并处理页面加载事件(在包含用户控件的页面中),这是否正确?或者我做错了什么?我记得读过一些有关 Page.IsCallback 的内容,但那是错误的,所以也许这与此无关。

最佳答案

嗯,这个问题不是关于 AJAX 本身,而是关于 Microsoft 的基于 AJAX 的 UpdatePanel,这是一个复杂的野兽。 UpdatePanel 工作方式的简单解释是,一切都与正常的全页面“回发”相同(ViewState POST 到服务器,重新创建服务器端 DOM,执行所有页面事件生命周期事件)除了在最后呈现给客户端的响应仅包含刷新发起 AJAX 请求的 UpdatePanel 内容所需的 HTML 子集。虽然还有一些额外的微妙之处和复杂性,但这是基本思想。

关于asp.net - 我是否完全误解了 ASP.Net AJAX(更新面板)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4286890/

相关文章:

asp.net - IHttpControllerFactory 在哪里?

ASP.NET 页面事件 - GridView 绑定(bind)后出现按钮单击事件

Asp.net 页面生命周期 page_loadComplete

javascript - 小数位数超出范围 - Javascript

c# - 如何在 ASP.NET 中仅在 Debug模式下执行代码

javascript - Jira 小工具 - 在配置屏幕上重新加载 AJAX

javascript - 如何在 Yii2 中使用 post 请求在 ajax 调用中发送多个参数

javascript - 在 jQuery 的 get 速记上设置超时

c# - 动态控制在回发时丢失

c# - 如何配置 MYSQL ODBC 驱动程序以与 Visual Studio 2013 一起使用?