2016-01-13 66 views
0

我遇到了一个应用程序问题,我正在使用Knockout和Knockout.mapping插件与MVC部分视图一起开发应用程序。关于部分视图的敲除缓存 - 强制刷新

背景

我想实现一个门户网站,用户可以有不同的配置文件,所以我给他们选择,他们有多少配置文件要和他们的名字的选项。在此之后,他们转到下一页,在那里他们配置他们的配置文件,每个配置文件由相同的属性和字段组成,在一天结束时,他们全部进入同一个表格,仅使用不同的“ProfileID”

目前的情况

我只有一个下拉列表视图,其中列出了不同的配置文件的名称,一旦个人资料被选中,一个partialView呈现显示可编辑的信息给用户,在这里我使用knockout让用户在客户端添加/删除属性,然后使用Ajax请求将这些更改发布到DataBase中。在控制器上的Post方法中,我返回一个JSON对象来更新Knockout ViewModel绑定,我可以成功完成此操作。到目前为止这么好,对吧?

问题

一旦用户保存他们的个人资料,他们可能会去编辑下一个,做什么,而且很可能回来他们已经编辑一个配置文件。这是问题出现的地方:页面上显示的信息是它们原来的信息,即旧信息。我已经追踪了所有内容,尽管DataBase中的数据可以正常运行,但事实是浏览器甚至不会再向服务器请求Info,这意味着可能会缓存?如果可以,我该如何强制浏览器总是从服务器请求信息,或更新缓存的viewModel?

说明和回答 我终于知道,原来没有做淘汰赛,但只是一般的缓存,解决这个问题是要禁用控制器缓存,将返回的局部视图,通过添加方式这段代码:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")] 

回答

0

我终于知道,原来不具有淘汰赛做,但只是一般的缓存,顺便解决它禁用控制器缓存,将返回的局部视图,通过添加下面这段代码:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]