Asp.net mvc 会话变量在Internet Explorer中不工作,但在Firefox/Chrome中工作正常

Asp.net mvc 会话变量在Internet Explorer中不工作,但在Firefox/Chrome中工作正常,asp.net-mvc,internet-explorer,Asp.net Mvc,Internet Explorer,我们已经用Asp.NETMVC3Razor页面开发了一个web应用程序 在页面中,我们遇到问题,用户从菜单中选择项目,并将其添加到页面右侧的“订单详细信息”窗格中,在该窗格中,相同类型的多个项目相加,例如3 x大蒜面包等 为此,我们将T添加到列表中,并将其存储在会话变量中,如下代码所示: List<MunuItems> OrderItems = HttpContext.Session["_OrderItems"] as List<MunuItems>; MunuItem

我们已经用Asp.NETMVC3Razor页面开发了一个web应用程序

在页面中,我们遇到问题,用户从菜单中选择项目,并将其添加到页面右侧的“订单详细信息”窗格中,在该窗格中,相同类型的多个项目相加,例如3 x大蒜面包等

为此,我们将T添加到列表中,并将其存储在会话变量中,如下代码所示:

List<MunuItems> OrderItems = HttpContext.Session["_OrderItems"] as List<MunuItems>;

MunuItems newItem = new MunuItems();
// Set the newItem values

OrderItems.Add(newItem);
// Add the list to the session
HttpContext.Session.Add("_OrderItems", OrderItems);
// Retrun the partial view
return PartialView("_OrderItems", OrderItems);
List OrderItems=HttpContext.Session[“\u OrderItems”]作为列表;
MunuItems newItem=新MunuItems();
//设置newItem值
OrderItems.Add(newItem);
//将列表添加到会话中
添加(“\u OrderItems”,OrderItems);
//重新运行局部视图
返回PartialView(“\u OrderItems”,OrderItems);
这一切在Firefox或Chrome中都很好,但当我在InternetExplorer8/9中尝试这一点时,这种行为到处都是。每个项目只能添加1个,尝试添加第2个项目可能会导致其他项目从列表中删除,等等

你可以在这里查看页面


有人能建议如何在Internet Explorer中解决这个问题,或者为什么它不能在IE中工作吗?

看起来好像你在某处使用ajax


很可能您正在使用“GET”方法,并且该方法已被缓存。如果是这样,请在ajax调用中尝试
cache:false
(默认值为true)。

看起来好像您在某处使用ajax


很可能您正在使用“GET”方法,并且该方法已被缓存。如果是这样,请在ajax调用中尝试
cache:false
(默认值为true)。

听起来像是其他错误,因为会话独立于浏览器(存储在服务器上)。听起来像是其他错误,因为会话独立于浏览器(存储在服务器上)。谢谢,是的,我们使用Ajax调用局部视图。你能告诉我缓存的位置吗:false?你应该有这样一个调用:
$.ajax({url:'your_url',type:'GET',cache:false})
(GET也是默认类型)。哦,我看到你在使用“unobtrusiveajax”-你需要看看如何让它不缓存。你也可以尝试
$.ajaxSetup({cache:false})预先更改全局ajax设置的地方。您好,是的,我正在使用Asp.Net MVC Razor页面。调用是@Ajax.ActionLink(“添加到订单”,“添加订单项”,new{ID=Item.ID},new AjaxOptions{UpdateTargetId=“\u Orders”,InsertionMode=InsertionMode.Replace})谢谢,是的,我们使用Ajax调用局部视图。你能告诉我缓存的位置吗:false?你应该有这样一个调用:
$.ajax({url:'your_url',type:'GET',cache:false})
(GET也是默认类型)。哦,我看到你在使用“unobtrusiveajax”-你需要看看如何让它不缓存。你也可以尝试
$.ajaxSetup({cache:false})预先更改全局ajax设置的地方。您好,是的,我正在使用Asp.Net MVC Razor页面。调用是@Ajax.ActionLink(“添加到订单”,“添加订单项”,新建{ID=Item.ID},新建AjaxOptions{UpdateTargetId=“\u Orders”,InsertionMode=InsertionMode.Replace})