$ .ajax调用后RedirectToAction MVC 3

从我的角度来看,我通过$ .ajax将一个JSON对象发送到我的控制器,以将其保存在数据库中。 如果全部成功,我想重定向到另一个将显示不同视图的操作。

如果我使用此代码:

return RedirectToAction("CreatePage", "Survey", new {id = question.PageId}); 

执行进入Survey控制器,它返回一个视图,但不显示。

我已经阅读了一些post,其中说通过ajax重定向是不可能的。

到目前为止我使用的解决方案是通过javascript重定向,如下所示:

 success: function (ret) { window.location.href = "/Survey/CreatePage/" + $("#PageId").val(); } 

虽然这总是有效,但有时我需要刷新CreatePage视图以显示最后所做的更改。

如何更好地解决这个问题呢?

提前致谢

正如mccow002建议的那样,我并不是真的需要通过AJAX进行调用。 在研究了建议的解决方案后,我意识到我可以简单地以表格forms提交。 我的困惑是因为我有一个保存并继续编辑和保存。 对于保存和继续,我使用AJAX调用,但是对于提交表单的保存选项是可以的。

非常感谢您的帮助。

您可以将.net代码中呈现的html发送回客户端并在页面中加载该html,而不是重定向到新页面,例如$("#main").load(renderedHtml)

但是为了刷新页面,您可以编写一个以指定的时间间隔运行的简单脚本并刷新页面状态。

您可以在CreatePage操作上使用[OutputCache] ,以便它不会缓存页面或仅缓存这么长时间。

输出缓存