Для интранет-приложения у меня есть функция сохранения веб-страницы, которая может привести к существенным действиям с несколькими таблицами базы данных. Я использую Linq2SQL, и около 20 секунд простоя браузера поглощаются тремя отдельными вызовами Linq.DataContext.SubmitChanges()
. Эти вызовы происходят прямо в конце кода, вызываемого обратной передачей SaveButton.
Я хочу, чтобы фактическая работа, необходимая для накопления этих изменений в базе данных, выполнялась в рамках действия кнопки сохранения. Однако, учитывая отсутствие проблем или конфликтов, я хотел бы перенаправить пользователя на другую страницу сразу после этого (чтобы им не приходилось смотреть на экран, делая что-то, что они не могут остановить. Затем, когда пользователь продолжает, я хотел бы позвонить всем SubmitChanges()
.
Идеальный рабочий процесс:
void btnSaveClick()
{
CalculateChangeSetProcedure
Redirect somewhere...
SubmitChangesProcedure
}
Итак, моя проблема в том, что Response.Redirect(..., true) просто закроет все. Есть ли способ сделать это с помощью процедур ASP.NET или мне придется делать это асинхронно в другом потоке?