【发布时间】:2010-08-19 18:33:10
【问题描述】:
我想要做的是在 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-->
有什么想法吗?
【问题讨论】:
标签: asp.net-mvc redirect asp.net-mvc-views