2011-12-15 4 views
0

Я использую MCV3 OutputCache для уменьшения времени загрузки страницы с таблицей, полной данных. Я использую методы ajax для обновления информации и управления DOM, чтобы показать пользователю, что их изменения были успешными. Это нормально, пока не загрузится страница, а загруженный кеш-файл будет загружен вместо обновленного.C# Использование OutputCache в MVC3 Project

Когда вызывается метод Update, я хотел бы очистить кеш или удалить его, чтобы он воссоздавался при перезагрузке страницы с новыми обновленными данными.

Мой код выглядит следующим образом:

[OutputCache(CacheProfile = "VideoIndexView")] 
public ActionResult Index() 
{ 
    ... 
    return View(model); 
} 

ответ

0

Вы можете использовать свой результат Index действия, чтобы загрузить шаблон экрана и использовать AJAX, чтобы получить и загрузить фактические данные.

[OutputCache(CacheProfile = "VideoIndexView")] 
public ActionResult Index() 
{ 
    ... 
    return View(model); // Really only return a model that is okay to be cached 
} 

public ActionResult LoadData() 
{ 
    var Result = // Load the data 
    ... 
    return Json(Result); // Don't forget to allow GET here if you're using HTTPGET 
} 

// Or... 

public ActionResult LoadData() 
{ 
    var Result = // Load the data 
    ... 
    return PartialView (Result); 
} 

Таким образом, Index можно кэшировать просто отлично, и данные будут загружены и вводили в страницу после того, как страница была вручено пользователю. Если вы собираетесь использовать что-то вроде jQuery, обязательно скажите ему не использовать кешированные результаты, если вы используете GET.

+0

К сожалению, я должен использовать MS Access DB, который не поддерживает команды TOP или LIMIT. Это означает, что у меня есть довольно большой набор данных для работы, и на самом деле это строки, которые я хочу кэшировать, в отличие от страницы или других частичных представлений. – joepour

+0

Да, но вы также можете кэшировать свои результаты в методе «LoadData» и просто отправлять страницы, как только клиентская сторона готова для них. –

1

Вы можете вызвать статический метод RemoveOutputCacheItem, если хотите очистить некоторый URL из кеша.

+0

Работает ли 'RemoveOutputCacheItem', когда аргумент является именем' CacheProfile'? – escist

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

  • Нет связанных вопросов^_^