2010-07-20 131 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)這將給你需要一個單獨的區域來緩存,除非你想創建自己的緩存管理器或者使用一個像企業版本一樣的緩存管理器。