3
我想知道它是否有可能將querystring參數和會話參數一起使用outputcache。基於查詢字符串參數和會話的ASP.NET輸出緩存
我正在提供基於位置的內容,而countryid存儲在一個會話中,而其他參數如categoryid,pageindex存儲在查詢字符串中。
我想知道它是否有可能將querystring參數和會話參數一起使用outputcache。基於查詢字符串參數和會話的ASP.NET輸出緩存
我正在提供基於位置的內容,而countryid存儲在一個會話中,而其他參數如categoryid,pageindex存儲在查詢字符串中。
可以通過使用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);
}
-1你不能在這個時候接取會話。 「會話狀態在此上下文中不可用。」 – Zote