我在我的aspx页面中使用OutputCache指令。我想根据环境添加或删除它。例如,有生产指令,但没有开发环境。
页面上的if语句似乎不起作用:
<% if (someCondition) { %>
<%@ OutputCache Location="Any" Duration="1800" VaryByParam="None" %>
<% } %>
有没有办法在后面的代码中删除(或添加)指令?实现这一目标的最佳方法是什么?
答案 0 :(得分:1)
可以通过编程方式处理每个OutputCache属性,如下所示:How to cache in ASP.NET by using Visual C# .NET
有没有办法在后面的代码中删除(或添加)指令?
到目前为止我并没有看到,但不排除可能性。尽管如此,你不必为你的场景提供 Response.Cache ,它可以让你整整十码。
虽然如果您使用的是ASP.NET MVC,那么您可以将其用作如下所示的属性: OutputCacheAttribute Class([OutputCache(CacheProfile =“MyProfile”,Duration = 10)])。 还有一个stackoverflow示例here。
实现这一目标的最佳方式是什么?
使用 Response.Cache 。请检查以下代码。
using System.Web;
//......
//......
//......
if (someCondition)
{
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Public); //Location="Any"
HttpContext.Current.Response.Cache.SetExpires(DateTime.Now.AddSeconds(1800)); //Duration="1800"
HttpContext.Current.Response.Cache.SetValidUntilExpires(true);
}