2010-03-03 65 views

回答

-1

可以通過使用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

-1你不能在這個時候接取會話。 「會話狀態在此上下文中不可用。」 – Zote