Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC4 Ajax请求和浏览器状态丢失_Asp.net Mvc_Session_Asp.net Mvc 4_Asp.net Ajax - Fatal编程技术网

Asp.net mvc MVC4 Ajax请求和浏览器状态丢失

Asp.net mvc MVC4 Ajax请求和浏览器状态丢失,asp.net-mvc,session,asp.net-mvc-4,asp.net-ajax,Asp.net Mvc,Session,Asp.net Mvc 4,Asp.net Ajax,我有一个MVC4应用程序。一个服务页面有多个项目,并带有典型的“添加到收藏夹”链接。类似-> [第1页] …[item1][添加到收藏夹] …[item2][添加到收藏夹] “添加到收藏夹”是一个连接到后端的Ajax actionlink。后端基本上在Httpcontext.Session中维护一个喜爱的项目列表。JSON响应“true/false”被发送回客户端。如果为“true”,则客户端代码将“添加到收藏夹”链接更改为“收藏夹”。比如: [第1页] …[第1项][赞成] …[item2][

我有一个MVC4应用程序。一个服务页面有多个项目,并带有典型的“添加到收藏夹”链接。类似->

[第1页]
…[item1][添加到收藏夹]
…[item2][添加到收藏夹]

“添加到收藏夹”是一个连接到后端的Ajax actionlink。后端基本上在Httpcontext.Session中维护一个喜爱的项目列表。JSON响应“true/false”被发送回客户端。如果为“true”,则客户端代码将“添加到收藏夹”链接更改为“收藏夹”。比如:

[第1页]
…[第1项][赞成]
…[item2][添加到收藏夹]

现在,如果我访问另一个页面,比如说第x页,然后再回到[第1页],我看到了

[第1页]
…[item1][添加到收藏夹]
…[item2][添加到收藏夹]

而不是

[第1页]
…[第1项][赞成]
…[item2][添加到收藏夹]


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

当您重新加载页面时,您需要获得喜爱项目的列表,并根据该数据呈现链接


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

您是否将所有“添加收藏夹”操作都存储在服务器端?因此,当您加载下一页时,您是否查看了会话并查看了其中的内容?是空的吗?它们是否存储在您认为存储在其中的密钥中?它不是空的。在重新加载期间,浏览器碰巧提供缓存内容;因此没有后端请求。奇怪的是,它没有缓存喜欢的项目的状态。