2010-07-20 91 views
0

我想缓存一个不为null的选择列表,但我得到一个空的异常错误。的代码导致错误的路线是:(使用缓存项目=新的缓存()创建笔记项;以及tripVM.friendDropDown拥有选择列表的缓存MVC .NET 4.0

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

大部分的在线资源的说,我可以使用下面的语法但这不是在VS2010使用.NET 4.0允许:

cache["friendDropDown"] = tripVM.friendDropDown; 

,其中从

未来这个错误

感谢

回答

0

你应该缓存的数据,而不是控制。在控制器内部,检查缓存是否存在,否则添加它。然后,将数据设置为传递给视图的ViewData或Model,然后从那里访问它。

如果您的意图是缓存整个视图结果,那么您可以使用“OutputCache”属性来缓存来自控制器的输出。

最后,当你去缓存的东西,你应该使用HttpContext.Cache(http://msdn.microsoft.com/en-us/library/system.web.httpcontext.cache.aspx)这将给你需要一个单独的区域来缓存,除非你想创建自己的缓存管理器或者使用一个像企业版本一样的缓存管理器。