从我的角度来看,我通过$ .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 - 它是一种工具,只能在适当的时候使用。 – mccow002
您是否期待来自AJAX请求的HTML或JSON?我问的原因是,如果你接受JSON,你理论上可以为每个AJAX JSON请求提供一个包装器响应,这个响应具有一些常见的属性,例如:.Success,.Message,.Data和.Redirect。你的JS可以评估AJAX发回的东西是否需要更新消息或者重定向。 –