以编程方式设置页面输出缓存VaryByCustom值

时间:2010-04-15 18:22:42

标签: .net asp.net code-behind outputcache

我想对我支持的VaryByCustom参数类型使用Enum值,是否可以这样做?

我尝试在页面中设置它

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

但是这会在我的"<%=VaryByCustomType.IsAuthenticated.ToString(); %>"中返回整个文字字符串global.asax有没有办法在页面本身或代码隐藏中执行此操作?或者这只是我必须接受的纯粹魔术字符串,我无法为其添加类型安全性吗?

1 个答案:

答案 0 :(得分:8)

不要使用@Outputcache指令,而是尝试使用页面中的代码。 e.g。

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