从我的观点来看,我通过$ .ajax将一个JSON对象发送到我的控制器,以将其保存在数据库中。 如果一切都成功了,我想重定向到另一个会显示不同视图的动作。
如果我使用此代码:
return RedirectToAction("CreatePage", "Survey", new {id = question.PageId});
执行进入Survey控制器,它返回一个视图但不显示。
我已经阅读了一些帖子,其中说通过ajax重定向是不可能的。
我目前使用的解决方案是通过javascript重定向:
success: function (ret) {
window.location.href = "/Survey/CreatePage/" + $("#PageId").val();
}
虽然这总是有效,但有时我需要刷新CreatePage视图以显示最后所做的更改。
如何更好地解决这个问题?
提前致谢
答案 0 :(得分:1)
正如mccow002建议的那样,我并不是真的需要通过AJAX进行调用。在研究了建议的解决方案后,我意识到我可以简单地以表格形式提交。我的困惑来了,因为我有一个保存并继续编辑和保存。对于保存和继续,我使用AJAX调用,但是对于提交表单的保存选项是可以的。
非常感谢你的帮助。
答案 1 :(得分:0)
您可以将.net代码中呈现的html发送回客户端并在页面中加载该html,而不是重定向到新页面,如$("#main").load(renderedHtml)
。
但是为了刷新页面,您可以编写一个以指定的时间间隔运行的简单脚本并刷新页面标记。
答案 2 :(得分:0)
您可以在CreatePage操作上使用[OutputCache]
,这样它就不会缓存页面或只缓存这么长时间。