На основе ASP.NET Outputcache для параметра строки запроса И сеанса - PullRequest
3 голосов
/ 03 марта 2010

Я хотел бы знать, возможно ли использовать выходной кэш с параметром строки запроса И параметром сеанса вместе.

Я обслуживаю контент на основе местоположения, а идентификатор страны сохраняется в сеансе, а другие параметры, такие как categoryid, pageindex, хранятся в строке запроса.

1 Ответ

0 голосов
/ 03 марта 2010

Можно варьировать кэширование вывода в зависимости от того, что вы хотите, используя VaryByCustom и предоставляя специальную функцию, которая будет возвращать строку ключа кэша. Для вашего случая попробуйте такую ​​директиву:

<%@ OutputCache Duration="30" VaryByParam="myParam" VaryByCustom="mySessionVar" %>

Затем в Global.asax переопределите функцию GetVaryByCustomString для своего приложения:

public override string GetVaryByCustomString(HttpContext context, string arg)
{
    if(arg == "mySessionVar" && Session["mySessionVar"] != null)
    {
        return Session["mySessionVar"].ToString();
    }

     return base.GetVaryByCustomString(context, arg);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...