2010-07-20 3 views
0

Я пытаюсь кэшировать selectlist, который не является нулевым, но я получаю ошибку исключения с ошибкой. Строка кода вызывает ошибку является: (пункт примечание создается с помощью элемента кэша = новый кэш(), и tripVM.friendDropDown держит SelectListКэширование 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), это даст вам нужна одна область для кеширования, если вы не хотите создавать свой собственный менеджер кеша или использовать один из них, например, для libarary.

Смежные вопросы