【发布时间】:2020-04-01 15:34:28
【问题描述】:
我有一个名为 Upload 的异步任务操作控制器,它允许用户上传 PDF 文件。处理 PDF 文件并将信息存储在 db 中。控制器处理完 PDF 后,我需要将其重定向到确认视图。目前上传控制器完成后,我没有服务器,例如404 错误等,它只是重定向到相同的上传视图,而不是确认视图
谁能告诉我为什么?我很确定它与异步任务有关,也许异步任务需要以不同的方式重定向?
我在 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);
}
【问题讨论】:
-
您的控制器名称是“CompletedCamps”吗?
-
肯定是:“公共类 CompletedCampsController : Controller”。我没有收到服务器错误.. 没有 404 什么都没有。它只是返回相同的上传视图
-
如果您想重定向到确认控制器,您应该将“CompletedCamps”更改为“确认”
-
return RedirectToAction("Confirmation", "Confirmation", new { id = id });请测试这部分而不是您的代码。 -
如果您注释掉您的帖子上传方法栏的内容,重定向的行为是否相同?
标签: c# asp.net asp.net-mvc asynchronous async-await