Обратные вызовы ASYNC происходят, когда SupportsPartialRendering имеет значение false - PullRequest
3 голосов
/ 10 сентября 2010

Мы получаем ошибочную ошибку на двух наших страницах в нашем приложении ASP.NET. На обеих страницах изначально были теги, позволяющие периодически перезагружать страницу, если пользователь некоторое время сидел на ней, но решил удалить их в пользу некоторого вкуса AJAX. В частности, мы создали элементы управления таймером на странице и установили тиковое событие таймера в качестве триггера для панели обновления для перезагрузки части страницы. На страницах также есть менеджеры сценариев, так как у нас их нет на главной странице. Это в основном работает отлично, за исключением того, что мы получаем много таких ошибок:

"Страница выполняет асинхронную обратную передачу, но для свойства ScriptManager.SupportsPartialRendering установлено значение false."

Насколько я понимаю, если .NET Framework обнаруживает, что браузер не поддерживает частичную визуализацию, он установит для параметра ScriptManager.SupportsPartialRendering значение false, и мы НЕ будем переопределять это каким-либо образом. Следовательно, страницы не должны выполняться с помощью асинхронных обратных передач, если это значение равно false, но из-за ошибки обратные передачи все еще происходят, и страница выдает исключение.

Любопытно, что пользовательский агент всегда выглядит как GoogleBot или «Mozilla / 4.0 (Windows 98; США) Opera 10.00 [en]».

Я бы проявил некоторое понимание. Мы поиграли с идеей принудительного применения SupportsPartialRendering к true, но это не объясняет, почему обратные вызовы ASYNC происходят даже в том случае, если .NET Framework устанавливает значение false в зависимости от ограничений браузера.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2012

Я нахожу SupportsPartialRendering также запутанным из-за названия и потому, что он делает две вещи.

  1. Он действует как флаг, чтобы определить, поддерживает ли браузер частичный рендеринг страниц.,Как флаг, он фактически не предотвращает асинхронные обратные передачи, поэтому вы все равно получаете ошибку.

  2. Вы можете использовать ее как переопределение.Вы можете разрешить асинхронные обратные передачи независимо от того, какой браузер, но вы не можете предотвратить это с помощью этого свойства.

Cheers.

0 голосов
/ 17 марта 2011

Я тоже нахожу это.Похоже, что новые браузеры также будут вызывать это исключение.Элементы, которые я нашел до сих пор - хотя я не решил свой собственный сценарий - следующие:

  1. Убедитесь, что для <xhtmlConformance mode="Legacy" /> не установлено Legacy
  2. Потенциально, удалив скрытые поля

Вы можете полностью отключить частичную визуализацию, установив для ScriptManager.EnablePartialRendering в значение false .Это заставит панель обновлений перезагружать все содержимое панели одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...