在ASP.NET MVC3应用程序中,我在视图中有一个按钮.
单击该按钮时,将调用一个函数,并进行jquery ajax调用以将项目保存到数据库
function SaveMenuItems() {
var encodeditems = $.toJSON(ids);;
$.ajax({
type: 'POST',
url: '@Url.Action("SaveItems", "Store")',
data: 'items=' + encodeditems + '&storeKey=@Model.StoreID',
complete: function () {
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
我想要的是将项目保存到数据库后我想重定向到另一个视图.(重定向到行动)
我怎样才能做到这一点?
我试着return RedirectToAction("Stores","Store")在SaveItems函数末尾的控制器中使用.但它没有用
我也尝试添加window.location.replace("/Store/Stores");ajax调用的完整功能,但也没有工作
任何帮助是极大的赞赏
非常感谢
我使用$ .ajax()每5秒轮询一次动作方法,如下所示:
$.ajax({
type: 'GET', url: '/MyController/IsReady/1',
dataType: 'json', success: function (xhr_data) {
if (xhr_data.active == 'pending') {
setTimeout(function () { ajaxRequest(); }, 5000);
}
}
});
Run Code Online (Sandbox Code Playgroud)
和ActionResult动作:
public ActionResult IsReady(int id)
{
if(true)
{
return RedirectToAction("AnotherAction");
}
return Json("pending");
}
Run Code Online (Sandbox Code Playgroud)
我必须将动作返回类型更改为ActionResult才能使用RedirectToAction(最初它是JsonResult并且我正在返回Json(new { active = 'active' };),但它看起来很难重定向并从$ .ajax()成功回调中呈现新视图.我需要从这个轮询ajax回发中重定向到"AnotherAction".Firebug的响应是来自"AnotherAction"的视图,但它不是渲染.