生成局部视图的动作实现整个页面必须被替换。如何重定向?

时间:2012-03-06 20:07:54

标签: ajax asp.net-mvc-3

这是一个部分假设的问题,因为我此刻并不需要这样做。我只是期待着我可能。

我的MVC3应用程序有一个页面,其中包含使用MVC3 Ajax和AjaxHelper.BeginForm()刷新的部分视图。一切都很好。

但是,生成局部视图的操作可能会实现,而不是看到部分视图的刷新,用户需要被发送到完全不同的页面。换句话说,操作方法不是返回PartialViewResult,而是需要返回RedirectResult或常规View

毫无疑问,这不起作用:当签名调用RedirectResult时,尝试返回PartialViewResult将无法编译。

那怎么能实现呢?让我们说,为了论证,必须在服务器端做出必要的决定,并且只有在局部视图中的信息被发回服务器之后。

1 个答案:

答案 0 :(得分:1)

首先,定义您的方法以返回ActionResult,这样您就可以根据需要返回PartialViewResultRedirectResult

其次,在BeginForm()方法调用中提供OnFailure回调函数。如果AJAX调用的结果不是HTTP 200,则将运行OnFailure回调,然后您可以使用该回调来解析重定向响应并执行重定向。