2013-05-16 32 views
0

我有一个MVC4应用程序。已投放页面有多个具有典型“添加到收藏夹”的项目链接。喜欢的东西 - >MVC4 Ajax请求和浏览器状态丢失

[page 1] ...[item1][Add to favorites] ...[item2][Add to favorites]

“添加到收藏夹”是阿贾克斯ActionLink的它连接到后端。后端基本上维护Httpcontext.Session中的最常用项目列表。 JSON响应“真/假”被发送回客户端。如果“真”,则客户端代码将“添加到收藏夹”链接更改为“已收藏”。喜欢的东西:

[page 1] ...[item1][Favorited] ...[item2][Add to favorites]

现在,如果我访问的另一页,说第x页,之后回来[1],我看到

[page 1] ...[item1][Add to favorites] ...[item2][Add to favorites]

,而不是

[page 1] ...[item1][Favorited] ...[item2][Add to favorites]

我想知道是否有办法显示真实状态。谢谢。

+0

所以,当你加载下面的页面,你看了会议,看看里面有什么?它是空的吗?它们是否存储在您认为存储在其中的密钥中? –

+0

它不是空的。它有收藏的项目。 – user1664185

+0

您是否在服务器端存储所有“添加最爱”动作? – Ryba

回答

0

当您重新加载页面时,您需要获取收藏项列表并根据该数据呈现链接。

有几种不同的方法可以做到这一点。由于您使用的是mvc,因此将最常用的项列表作为视图模型的一部分加载并相应地呈现视图可能是最容易的。

+0

在重新加载期间,浏览器恰好为缓存的内容提供服务;因此没有后端请求。奇怪的是,它不会缓存收藏项目的版本。 – user1664185