2010-07-20 5 views
0

J'essaie de mettre en cache une liste de sélection qui n'est pas nulle mais j'obtiens une erreur d'exception nulle. La ligne de code provoque l'erreur est: (élément de la note est créée en utilisant élément de cache = new Cache() et tripVM.friendDropDown détient le SelectListMise en cache MVC .NET 4.0

item.Insert("friendDropDown", tripVM.friendDropDown,null,DateTime.Now.AddMilliseconds(10000), TimeSpan.Zero); 

La plupart des ressources en ligne disent que je pourrais utiliser la syntaxe ci-dessous mais ce n'est pas autorisé à VS2010 en utilisant .NET 4.0:

cache["friendDropDown"] = tripVM.friendDropDown; 

Où est cette erreur vient de

grâce

Répondre

0

Vous devriez être en mémoire cache que les données et non le contrôle. À l'intérieur du contrôleur, vérifiez si le cache existe sinon ajoutez-le. Ensuite, vous définissez les données sur ViewData ou un modèle que vous transmettez à la vue et accédez à partir de là.

Si votre intention est de mettre en cache l'ensemble des résultats de la vue, vous pouvez mettre en cache la sortie du contrôleur en utilisant l'attribut "OutputCache". Enfin, lorsque vous allez mettre en cache quelque chose, vous devriez utiliser HttpContext.Cache (http://msdn.microsoft.com/en-us/library/system.web.httpcontext.cache.aspx) cela donnera Vous pouvez mettre en cache une seule zone à moins que vous ne souhaitiez créer votre propre gestionnaire de cache ou en utiliser un comme librairie d'entreprise.