使用MVC 4,我有一个包含@Ajax.BeginForm
的部分视图表单。
表单按预期提交,结果在我的主视图中异步显示。
我想在我的控制器上有一个条件,如果某个参数在我的表单上为真,那么它会重定向到一个全新的页面(而不是在我的主视图中显示结果)。
当我尝试return RedirectToAction
时,整个视图显示在表单通常显示的div中,而不是忽略AJAX并重定向到一个全新的页面。
有谁知道我怎么能实现这个目标?
答案 0 :(得分:7)
您可以使用return JavaScript
来实现它。
public ActionResult MyAction()
{
if (parameter)
{
return JavaScript("window.location = '" + Url.Action("Action", "Controller") + "'");
}
//Do something here
return PartialView("ParitalView", Model);
}
答案 1 :(得分:2)
您无法在ajax调用中执行RedirectToAction
。
只需返回HttpStatusCodeResult
并根据它在Javascript中执行重定向
public ActionResult Save()
{
return new HttpStatusCodeResult(302,
"/Users/Details");
}
在Ajax Error函数中,在AjaxOptions { OnFailure = "Error" }
function Error(response, status, error) {
window.location.href= response.statusText;
}