2011-05-16 6 views
1

Nous avons développé une application Web avec Asp.Net MVC 3 à l'aide de pages Razor.La variable de session ne fonctionne pas dans Internet Explorer, mais fonctionne bien dans Firefox/Chrome

Dans la page, nous avons des problèmes avec un utilisateur sélectionne des éléments d'un menu et ils sont ajoutés au volet des détails de la commande sur la droite de la page, où plusieurs éléments du même type sont totalisés par ex. 3 x pain à l'ail, etc.

Pour ce faire, on ajoute à une liste de T et le stocker dans une variable de session comme dans le code suivant:

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); 

Tout cela fonctionne très bien dans Firefox ou Chrome, mais quand j'essaye ceci dans Internet Explorer 8/9 le comportement est partout. Seulement 1 de chaque élément peut être ajouté, en essayant d'ajouter 2e éléments peut entraîner d'autres éléments à déposer la liste, etc.

Vous pouvez voir la page ici http://software.ayslive.com/WR_TakeAway/menu

Quelqu'un peut-il suggérer comment cela peut être résolu dans Internet Explorer ou pourquoi cela ne fonctionne pas dans IE?

+0

Cela ressemble à quelque chose d'autre est faux parce que la session est indépendante du navigateur (il est stocké sur le serveur). –

Répondre

1

Il semble que vous utilisiez ajax quelque part.

Il est tout à fait possible que vous utilisiez la méthode 'GET' et qu'elle soit mise en cache. Si oui, essayez cache: false dans votre appel ajax (la valeur par défaut est true).

+0

Merci, oui, nous utilisons Ajax pour appeler une vue partielle. Pouvez-vous me dire où je place le cache: false? –

+0

vous devriez avoir un appel comme suit: '$ .ajax ({url: 'your_url', tapez: 'GET', cache: false})' (GET est aussi le type par défaut). –

+0

oh, je vois que vous utilisez 'ajax discret' --- vous aurez besoin de voir comment l'obtenir * pas * cache. –

Questions connexes