我正在使用Ajax.BeginForm创建一个窗体,它将执行ajax回发到某个控制器操作,然后如果该操作成功,则用户应被重定向到另一个页面(如果该操作失败,则使用AjaxOptions UpdateTargetId)。
using (Ajax.BeginForm("Delete", null, new { userId = Model.UserId }, new AjaxOptions { UpdateTargetId = "UserForm", LoadingElementId = "DeletingDiv" }, new { name = "DeleteForm", id = "DeleteForm" })) { [HTML DELETE BUTTON] }
如果删除成功,我将返回重定向结果:
[Authorize] public ActionResult Delete(Int32 UserId) { UserRepository.DeleteUser(UserId); return Redirect(Url.Action("Index", "Home")); }
但是Home Controller Index视图已被加载到UpdateTargetId中,因此我最终在页面中找到一个页面。我在考虑两件事:
有人对#1有意见吗?或者,如果#2是一个好的解决方案,那么“重定向javascript视图”会是什么样?
您可以使用它JavascriptResult来实现。
JavascriptResult
要重定向:
return JavaScript("window.location = 'http://www.google.co.uk'");
要重新加载当前页面:
return JavaScript("location.reload(true)");
似乎是最简单的选择。