2013-12-15 5 views
0

Я использую Response.Redirect(url, **false**); во избежание исключения. Тем не менее, я видел, как он рекомендовал использовать CompleteRequest(); после этого, и я этого не понимаю. Пример: here on MSDN. Насколько я знаю, CompleteRequest будет не прекратить выполнение (хотя это повлияет на рендеринг), поэтому любой код с сохраняющимися последствиями, такими как запись базы данных - , будет иметь значение. И поэтому остановка кода должна управляться return и т. Д. И это не, необходимое для обработки Redirect.О CompleteRequest();

Правильно ли я понимаю? (Я спрашиваю из-за ссылки выше и аналогичных.)

ответ

0

Ваше понимание верное. Использование CompleteRequest() сигнализирует время выполнения ASP.NET, что дальнейшая обработка запроса не требуется, и он обходит все события в конвейере HTTP и напрямую вызывает событие EndRequest. Однако он не прекратит выполнение оставшихся строк кода. Это будет просто закончить запрос изящно, чтобы предотвратить потерю данных.