2011-05-16 81 views
1

我們使用Razor頁面開發了一個帶有Asp.Net MVC 3的Web應用程序。會話變量無法在Internet Explorer中工作,但在Firefox/Chrome中正常工作

在頁面中,我們遇到了問題,用戶從菜單中選擇項目,並將它們添加到頁面右側的訂單詳細信息窗格中,其中多個相同類型的項目彙總在一起,例如, 3×大蒜麪包等

要做到這一點,我們加入到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); 

這一切都在Firefox或Chrome罰款,但當我在Internet Explorer 8/9中嘗試使用時,其行爲已遍佈全球。只有1中可以添加的每個項目,嘗試添加第二個項目可能會導致其他物品掉落列表等

您可以查看此頁面http://software.ayslive.com/WR_TakeAway/menu

有人能想出如何能夠在Internet資源管理器或爲什麼它不在IE中工作?

+0

由於Session獨立於瀏覽器(它存儲在服務器上),所以聽起來像別的東西是錯誤的。 – 2011-05-16 17:59:07

回答

1

它看起來好像你在某處使用ajax。

很可能您正在使用'GET'方法並將其緩存。如果是這樣,請在您的ajax調用中嘗試cache: false(默認爲true)。

+0

謝謝,是的,我們使用Ajax來調用局部視圖。你能告訴我我放置緩存的位置:false? – 2011-05-16 18:30:15

+0

你應該這樣調用:'.ajax({url:'your_url',type:'GET',cache:false})'(GET也是默認類型)。 – 2011-05-16 18:37:19

+0

哦,我看到你正在使用'unobtrusive ajax'---你需要看看如何讓它到* not * cache。 – 2011-05-16 18:52:11

相關問題