2010-04-15 16 views
7

Destekleyeceğim VaryByCustom parametrelerinin türleri için Enum değeri kullanmak istiyorum, bunu yapmak mümkün mü?Set Sayfa Çıktı Önbellek VaryByCustom değeri programatik olarak

Ben sayfanın kendisi

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

bunu ayarı çalıştı Ama bu benim global.asax içindeki tüm edebi dize "<%=VaryByCustomType.IsAuthenticated.ToString(); %>" döndü ya sayfanın kendisi veya codebehind itibaren bunu yapmanın bir yolu var mı? Yoksa bu sadece kabul etmek zorunda olduğum bir şey tamamen sihirli ipler ve ona tip güvenliği eklemek için yapabileceğim bir şey değil mi?

cevap

8

@Outputcache yönergesini kullanmak yerine, sayfadaki kodu kullanarak yapmayı deneyin. Örneğin.

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

Bu benim ancak etmek, http://msdn.microsoft.com/en-us/library/ms153473.aspx açıklamalar bu yöntemi kullanmak değil altında sahip olma ihtimali seyir arıyordu cevap gibi görünüyor MSDN'in neden hala bu yöntemi gösterdiğine dair herhangi bir bilginiz var mı? Ya da bunu kendim çağırmak için ne gibi etkileri var? –

+0

Açıkçası, bu 2.0 gün öncesine dayanan ve hiçbir zaman güncellenmeyen güncel olmayan belgelerdir. Bu aslında, yönergeyi kullandığınızda sizin için oluşturulan çağrıdır. Alternatif olarak, bu başlıkta açıklanan tekniği de kullanabilirsiniz: http://stackoverflow.com/questions/1043112/programatically-control-output-caching-disable-or-enable-cache-according-to-par –

+0

Teşekkürler David çok! –

İlgili konular