C # Использование OutputCache в проекте MVC3 - PullRequest
0 голосов
/ 15 декабря 2011

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

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

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

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

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

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

0 голосов
/ 15 декабря 2011

Вы можете использовать результат действия 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.

...