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

Chr*_*sic 7 .net asp.net outputcache code-behind

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

我尝试在页面中设置它

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

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

Dav*_*bbo 8

而不是使用@Outputcache指令,尝试使用页面中的代码.例如

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