Кэш вывода MVC Asp.net не работает с RedirectToAction - PullRequest
0 голосов
/ 14 января 2010

В моем случае у меня есть контроллер, который затем запросит пользователя, используя RedirectResult, который фактически сделал заголовок «Location».

Затем я применяю кеш к контроллеру вот так

[OutputCache(Duration = int.MaxValue, VaryByParam = "none", NoStore=false)]

Я пытаюсь перезапустить страницу и проверяю свой профилировщик Linq, я все еще могу видеть, что все запросы на этой странице повторяются, как 1с

Как я могу предотвратить это?

1 Ответ

1 голос
/ 14 января 2010

Вы можете использовать ручной кеш, вместо использования кеша вывода, который будет кешировать ваши запросы:

public IQueryable<Category> FindAllCategories()
{
    if (HttpContext.Current.Cache["AllCategories"] != null)
        return (IQueryable<Category>)HttpContext.Current.Cache["AllCategories"];
    else
    {
        IQueryable<Category> allCats =  from c in db.Categories
                                          orderby c.Name
                                          select c;

        // set cache
        HttpContext.Current.Cache.Add("AllCategories", allCats, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 0, 30, 0, 0), System.Web.Caching.CacheItemPriority.Default, null);
        return allCats;
    }
}
...