У меня есть асинхронный c контроллер действия задачи под названием Upload, который позволяет пользователю загружать PDF-файл. Файл PDF обрабатывается, а информация сохраняется в БД. После того, как контроллер обрабатывает PDF, мне нужно перенаправить его на просмотр View. В настоящее время после завершения загрузки контроллера я не получаю сервер, например, ошибка 404 и т. Д. c, он просто перенаправляет на то же представление загрузки, а не на представление подтверждения
Может кто-нибудь сказать мне, почему? Я уверен, что это как-то связано с асин c задачами, может быть, асин c задач нужно перенаправить другим способом?
Мои действия по загрузке и подтверждению в контроллере CompletedCamps
public ActionResult Upload(int? id)
{
CompletedCamp completedCamp = db.CompletedCamps.Find(id);
return View(completedCamp);
}
[HttpPost]
public async Task<ActionResult> Upload(HttpPostedFileBase file, int? id)
{
CompletedCamp completedCamp = db.CompletedCamps.Find(id);
string filename = Guid.NewGuid() + Path.GetExtension(file.FileName);
string filepath = Server.MapPath(Path.Combine("~/Surveys/", filename));
file.SaveAs(filepath);
completedCamp.SurveyName = filename;
db.SaveChanges();
await AzureVisionAPI.ExtractToTextFile(filepath);
ParseSurveyText parse1 = new ParseSurveyText();
await Task.Run(() => parse1.ParseTextFile(completedCamp.RollNumber, completedCamp.OfficialSchoolName, completedCamp.Date, filepath));
return RedirectToAction("Confirmation", "CompletedCamps", new { id = id });
}
[HttpGet]
public ActionResult Confirmation(int? id)
{
var camp = db.CompletedCamps.FirstOrDefault(c => c.Id == id);
return View(camp);
}