我想要做的是在 MVC 站点中呈现一个视图,通知用户在服务器端处理发生时不要刷新他们的浏览器。这可能是一个长时间运行的任务,如果他们点击刷新,它将再次发送请求,从而在进程实际成功时将它们发送到错误屏幕。我打算在 JS 中使用 JQuery $.ajax(...) 或简单的 $(document).ready(function() { window.location = ... }); 但我希望有一种方法可以在 MVC 中执行此操作,从而使我能够更好地控制返回给客户端调用的 HttpResponseCode。有没有办法做到这一点?
我在想
public ActionResult LoadingAsync(string UserKey, string userInf)
{
AsyncManager.OutstandingOperations.Increment();
CallProcess(...)
return View();
}
然后让 Completed Action 执行重定向
public ActionResult LoadingCompleted()
{
LongRunningProcess();
return Redirect("http://yourdone.com");
}
或者只是在视图内渲染一些东西,这些东西将从视图内执行重定向
<% Html.RenderAction("Process"); %><!--This won't actually redirect-->
有任何想法吗?