Если вы не хотите использовать библиотеки AJAX, или обработка электронной почты ДЕЙСТВИТЕЛЬНО длинна и будет превышать время ожидания стандартного запроса AJAX, вы можете использовать метод AsynchronousPostBack, который был «старым хаком» в .net 1.1. дней.
По сути, ваша кнопка отправки начинает обработку электронной почты в асинхронном состоянии, а пользователь переходит на промежуточную страницу. Преимущество этого заключается в том, что вы можете обновлять промежуточную страницу столько раз, сколько вам нужно, не беспокоясь о том, чтобы установить стандартные таймауты.
Когда ваш фоновый процесс завершится, он поместит небольшой флажок «выполнено» в базу данных / переменную приложения / что угодно. Когда ваша промежуточная страница обновляется сама, она обнаруживает этот флаг и автоматически перенаправляет пользователя на страницу «готово».
Опять же, AJAX делает все это спорным, но если по какой-то причине у вас есть очень интенсивный или своевременный процесс, который должен быть выполнен через Интернет, это решение будет работать для вас. Я нашел хороший учебник по этому вопросу здесь , и там есть еще много других.
Мне пришлось использовать такой процесс, когда мы работали над приложением типа «веб-регистрация», которое взаимодействовало со сторонним приложением, и их API импорта был ужасно медленным.
РЕДАКТИРОВАТЬ: ГАХ! Будь проклят Гузлар и твои богоподобные способности печатать 8 ^ D.