Краткое описание:
У меня проблема, когда при выполнении действия на странице ASPX дважды выдается исключение.
Подробности:
У меня есть два элемента управления ASP.NET (Intersoft Webgrids).Эти элементы управления привязаны к двум разным наборам данных, и когда я нажимаю кнопку «Выполнить», обновляется сетка № 1, которая автоматически каскадно обновляет (или очищает) сетку № 2 одновременно.Эти две сетки обновляются с помощью AJAX Intersoft «FlyPostback», который, похоже, очень похож на панели обновления ASP.NET AJAX, т. Е. Продолжается весь жизненный цикл ASP.NET (Page_Load и все такое).
Всемои страницы наследуются от базовой страницы, которая переопределяет OnError.Затем OnError зарегистрирует ошибку, очистит ее и перенаправит на страницу ошибки.Страница ошибок показывает красиво отформатированный фрагмент подробностей исключений.
Мой метод OnError выглядит примерно так
Session["lastError"] = Server.GetLastError();
Server.ClearError();//Have tried with and without this
this.ErrorPage = "ErrorPage.aspx";
Response.Redirect(this.ErrorPage, true);
Проблема:
Когда возникает исключение после нажатия кнопки «Выполнить»Кнопка Я, кажется, перенаправлен на страницу ошибки дважды.При первом перенаправлении я вижу (через отладчик), что получаю правильное исключение на странице ошибок, но затем меня снова перенаправляют на страницу ошибок, и на этот раз у меня нет подробностей об исключениях.Я не наблюдаю эту проблему только с одной сеткой.Мне кажется, что вторая сетка также пытается обработать исключение, но первая сетка уже обработала и очистила его.
ОБНОВЛЕНИЕ: Кажется, что OnError вызывается только один раз,но страница ошибки загружается дважды.
Вопрос:
Есть ли здесь очевидная ошибка?Есть ли лучший способ справиться с этой ситуацией?Первая сетка должна обработать исключение и прервать все другие запросы (или, по крайней мере, позволить им делать свое дело, не беспокоя меня), но, конечно, сетка № 1 не знает, обновлялась ли сетка № 2.