这是一个部分假设的问题,因为我此刻并不需要这样做。我只是期待着我可能。
我的MVC3应用程序有一个页面,其中包含使用MVC3 Ajax和AjaxHelper.BeginForm()
刷新的部分视图。一切都很好。
但是,生成局部视图的操作可能会实现,而不是看到部分视图的刷新,用户需要被发送到完全不同的页面。换句话说,操作方法不是返回PartialViewResult
,而是需要返回RedirectResult
或常规View
。
毫无疑问,这不起作用:当签名调用RedirectResult
时,尝试返回PartialViewResult
将无法编译。
那怎么能实现呢?让我们说,为了论证,必须在服务器端做出必要的决定,并且只有在局部视图中的信息被发回服务器之后。
答案 0 :(得分:1)
首先,定义您的方法以返回ActionResult
,这样您就可以根据需要返回PartialViewResult
或RedirectResult
。
其次,在BeginForm()
方法调用中提供OnFailure
回调函数。如果AJAX调用的结果不是HTTP 200,则将运行OnFailure
回调,然后您可以使用该回调来解析重定向响应并执行重定向。