MemoryCache
Вы заявляете, что хотите кэшировать переменную на стороне сервера, а не результаты содержимого. В этом случае вы можете взглянуть на использование MemoryCache .
Пример:
Допустим, вы хотите кэшировать некоторые данные, которые вы часто получаете из базы данных:
var cacheKey = "MyCacheKeyName";
MemoryCache cache = MemoryCache.Default;
XYZType myCache = null;
if (cache.Contains(cacheKey))
{
myCache = (XYZType)cache[cacheKey];
}
else
{
myCache = GetDataIWantToCache();
CacheItem cacheItem = new CacheItem(cacheKey, myCache);
cache.Add(cacheItem, new CacheItemPolicy() { AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(5) });
}
Объяснение
Блок if
проверяет наличие вашего элемента и возвращает его, если это так.
else
создаст ваш элемент (замените GetDataIWantToCache чем угодно), так как он не был найден, и вставьте его в кеш на пять минут.
OutputCache
Используйте атрибут OutputCache , если вы хотите кэшировать результаты содержимого для всего контроллера или отдельных действий. Он имеет настройки для контроля, как долго и если вы хотите иметь кэш для каждого параметра и / или некоторые параметры, используя свойство VaryByParam.
Еще немного чтения для вас по кешированию в .Net