2010-04-15 8 views
7

Ich möchte einen Enum-Wert für die Arten von VaryByCustom-Parameter, die ich unterstützen werde, ist es möglich, dies zu tun?Set Seite Ausgabe Cache VaryByCustom Wert programmgesteuert

Ich versuchte es auf der Seite Einstellung selbst

<%@ OutputCache Duration="600" VaryByParam="none" 
      VaryByCustom='<%=VaryByCustomType.IsAuthenticated.ToString(); %>' %> 

Aber das brachte die gesamte Zeichenkette "<%=VaryByCustomType.IsAuthenticated.ToString(); %>" in meinem global.asax ist es eine Möglichkeit, dies zu tun, entweder auf der Seite selbst oder von dem Code-Behind? Oder ist das einfach etwas, das ich akzeptieren muss, ist rein magische Saiten und nichts, was ich tun kann, um Typsicherheit hinzuzufügen?

Antwort

8

Anstatt die @Outputcache-Direktive zu verwenden, versuchen Sie es mit Code auf der Seite. z.B.

void Page_Init() { 
    var outputCacheSettings = new OutputCacheParameters() { 
     Duration = 600, 
     VaryByCustom = VaryByCustomType.IsAuthenticated.ToString() 
    }; 
    InitOutputCache(outputCacheSettings); 
} 
+0

Das sieht aus wie die Antwort, die ich wurde aber schaut auf http://msdn.microsoft.com/en-us/library/ms153473.aspx es hat unter Bemerkungen nicht diese Methode zu verwenden, jede Chance zu Haben Sie irgendwelche Kenntnisse darüber, warum die MSDN sagen würde, dass diese Methode dennoch verfügbar ist? Oder welche Implikationen hat es, es selbst zu beschwören? –

+0

Ehrlich gesagt ist dies eine veraltete Dokumentation, die aus den 2.0 Tagen stammt und nie aktualisiert wurde. Dies ist der Aufruf, der für Sie generiert wird, wenn Sie die Anweisung verwenden. Alternativ können Sie auch die in diesem Thread beschriebene Technik verwenden: http://stackoverflow.com/questions/1043112/programatically-control-output-caching-disable-or-enable-cache-according-to-par –

+0

Vielen Dank David! –