$ .ajax调用后RedirectToAction MVC 3

时间:2011-12-08 19:37:21

标签: asp.net-mvc-3 jquery redirect

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

如果我使用此代码:

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

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

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

我目前使用的解决方案是通过javascript重定向:

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

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

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

提前致谢

3 个答案:

答案 0 :(得分:1)

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

非常感谢你的帮助。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

output caching