Обработка исключений событий элемента управления ASP.NET - PullRequest
1 голос
/ 29 мая 2009

Предположим, у меня есть кнопка на странице aspx, которая выполняет сохранение данных формы в базу данных. В связанном обработчике событий перед отправкой обновлений я читаю что-то из веб-службы, операция, которая может привести к исключению. В случае ошибки я хочу, чтобы на странице отображалось адекватное сообщение, а все данные в форме сохранялись. Как мне этого добиться? Кроме того, все мои страницы наследуются от базовой страницы, поэтому я хотел бы, если возможно, иметь весь код обработки ошибок в базовом классе. Я не хочу, если возможно, окружать любой вызов веб-службы блоками try-catch, я бы в случае любого необработанного исключения автоматически вызывал какой-то метод, например, Page_error, но все же сохранял данные в моих формах.

1 Ответ

1 голос
/ 29 мая 2009

Вы можете легко поместить метод, который управляет отображаемым сообщением (возможно, установив текст некоторого errorMessageLabel) в суперклассе, вызываемом из любого производного класса (если вы хотите использовать наследование для настройки шаблона для ваших страниц), если выбрасывается исключение (вы можете поместить вызов метода superclas в блок catch, если на самом деле выдается исключение, или вы можете управлять этим вручную, если веб-служба недоступна в зависимости от вашего стиля программирования).

Что касается сохранения представленных данных, если viewstate включено и вы не заполняете свою страницу динамически, то все в порядке - если нет, вам нужно явно сохранить информацию о состоянии в записях viewState или сеанса и получить их обратно, если что-то пойдет не так. Этот бит действительно зависит от того, как на самом деле реализована ваша страница.

...