RedirectToAction后没有在javascript中调用文档就绪

时间:2015-01-14 21:56:54

标签: jquery asp.net-mvc-4

我有一个控制器方法,用于在我们的系统中显示用户。我创建了一个添加用户的页面。要做到这一点,我正在使用视图模型和脚手架。我有一个控制器方法来为页面提供控制器方法来处理帖子。

处理完保存后,我重定向回列表页面。我可以看到列表的控制器方法触发但它的文档就绪方法没有触发。文档就绪是我使用一些ajax加载用户列表的地方,因此它没有被刷新。我的帖子方法如下:

[Authorize]
    [HttpPost]
    public ActionResult NewUser(EditPSUserModel model)
    {
        var manager = AdminConsoleHelper.createUserManager();
        AdminConsoleHelper.AddUser(model.UserName, model.Password, model.IsAdmin, model.UserGroup, manager);
        return RedirectToAction("Index", "User");
        }
那里非常基本的东西。 My List的页面控制器方法如下所示:

[Authorize]
        [OutputCache(Duration=0)]
        public ActionResult Index()
        {
            PSUsersModel m = new PSUsersModel();
            return View(m);
        }

我尝试过使用输出缓存(将其设置为NoStore并使用缓存配置文件进行播放),但这似乎对准备触发文档没有任何影响。我也尝试强制改变索引(列表)控制器方法上的数据模型,它仍然保持缓存。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

如果它只是一个缓存问题,那么添加日期时间戳就是该问题的一个技巧

return RedirectToAction("Index", "User", new { date = DateTime.Now });

您不需要使用日期,但由于它是唯一的,因此会加载新版本的页面

答案 1 :(得分:0)

好的,我明白了。使用此属性:

[OutputCache(Duration=0)]

导致我的文档准备好了,我不得不将它添加到List的控制器方法中。另一个问题是它显然是在缓存我的JSON调用,所以我的列表没有被刷新,因为我使用的HTTPGet方法被缓存了。我在上面的HTTPGet方法中添加了与上面相同的属性来获取用户列表,现在又刷新了。