asp.net - 当 SupportsPartialRendering 设置为 false 时发生异步回发

标签 asp.net ajax asp.net-ajax

我们在 ASP.NET 应用程序的两个页面上遇到了一个令人困惑的错误。这两个页面最初都有标签,如果用户在页面上停留一段时间,就会经常重新加载页面,但选择删除这些标签以支持一些 AJAX 调味。具体来说,我们在页面上创建了计时器控件,并将计时器的滴答事件连接为更新面板的触发器,以重新加载页面的一部分。页面上也有脚本管理器,因为母版页上没有。这在很大程度上工作得很好,除了我们遇到了很多这样的错误:

“页面正在执行异步回发,但 ScriptManager.SupportsPartialRendering 属性设置为 false。”

据我了解,如果 .NET 框架检测到浏览器不支持部分呈现,它会将 ScriptManager.SupportsPartialRendering 值设置为 false,我们不会以任何方式覆盖它。因此,如果该值为 false,页面不应执行异步回发,但基于错误,回发仍在发生并且页面抛出异常。

奇怪的是,用户代理似乎总是 GoogleBot 或“Mozilla/4.0 (Windows 98; US) Opera 10.00 [en]”。

我希望有一些见解。我们考虑过强制 SupportsPartialRendering 为 true 的想法,但这并不能解释为什么 .NET 框架根据浏览器上限将其设置为 false 时甚至会发生 ASYNC 回发。

最佳答案

我也在找这个。似乎较新的浏览器也会导致此异常。到目前为止我发现的项目——虽然我还没有解决我自己的场景——如下:

  1. Ensure the <xhtmlConformance mode="Legacy" /> is not set to Legacy
  2. Potentially by removing Hidden fields

您可以通过 setting ScriptManager.EnablePartialRendering to false 完全禁用部分渲染.这将强制更新面板立即重新加载面板的全部内容。

关于asp.net - 当 SupportsPartialRendering 设置为 false 时发生异步回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3680636/

相关文章:

jquery - 如何在嵌套转发器内触发链接按钮的 OnClick 事件

asp.net - 使用 VB 在 ASP.NET 中反序列化 JSON

c# - 在 await Task.WhenAll() 中隔离异常

c# - 如何使用 C# 以编程方式创建 Exchange 2010 邮箱

asp.net - 密码保护 Elmah.axd 文件

javascript - 使用 Knockout 通过 Ajax 发布 ViewModel

javascript - 通过修改 HTTP header 使用不带 CORS 的 XMLHttpRequest?

javascript - javascript 中的 jquery ajax 调用响应为空

c# - 使用 C# 读取附加到 HTTP 扩展的 BLOB

asp.net-ajax - HTTP 处理程序在 ~/admin/folder 中的嵌套 Web 应用程序文件夹 : Telerik RadScriptManager cannot find WebResource. axd 中找不到 axd 文件