Я пытаюсь показать индикатор выполнения из кода, когда пользователь нажимает кнопку « Пуск ». « Start » - это асинхронная задача c, которая асинхронно сохраняет данные в базе данных, а затем перенаправляет на следующую страницу.
Итак, перед вызовом ожидающей задачи сохранения я вызвал javascript, используя ScriptManager.RegisterStartupScript
, который показывает индикатор выполнения, прежде чем перейти к длинной задаче сохранения в базе данных. однако, этот javascript не будет вызван, пока задача ожидания не будет завершена!
В приведенном ниже коде, если я удаляю код перенаправления в конце задачи, индикатор выполнения отображается после завершения задачи сохранения. Как заставить пользовательский интерфейс обновиться перед вызовом задачи await?
protected async void btnStart_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "script", "showProgress();", true);
var model = await Controllers.CompanyController.Save(txtEmail.Text, txtFlashEmail.Text);
Response.Redirect(GetRouteUrl("Company", new { CompanyId = model.Id }));
}