【发布时间】:2012-01-16 05:18:44
【问题描述】:
在我看来,我通过 $.ajax 向我的控制器发送一个 JSON 对象以将其保存在数据库中。 如果全部成功,我想重定向到另一个将显示不同视图的操作。
如果我使用此代码:
return RedirectToAction("CreatePage", "Survey", new {id = question.PageId});
执行转到返回视图但未显示的调查控制器。
我读过一些帖子说通过 ajax 重定向是不可能的。
目前我使用的解决方案是通过 javascript 重定向,如下所示:
success: function (ret) {
window.location.href = "/Survey/CreatePage/" + $("#PageId").val();
}
虽然这总是有效,但有时我需要刷新 CreatePage 视图以显示最后所做的更改。
知道如何更好地解决这个问题吗?
提前致谢
【问题讨论】:
-
我的第一个想法是为什么要使用 ajax 来完成?有没有在发布后不会重定向的情况?您提到如果全部成功,它将重定向,但您可以处理重定向到错误页面或带有错误消息的同一页面。并非在所有情况下都需要 Ajax - 它是一种工具,只应在适当的时候使用。
-
您希望从 AJAX 请求中返回 HTML 或 JSON 吗?我问的原因是,如果你接受 JSON,理论上你可以为每个具有一些常见属性的 AJAX JSON 请求制作一个包装器响应,例如:.Success、.Message、.Data 和 .Redirect。您的 JS 可以评估在 AJAX 上发回的属性,以确定它是否需要更新消息或进行重定向。
标签: asp.net-mvc-3 jquery redirect