渲染控件缓存错误不可用

时间:2009-01-30 22:27:22

标签: asp.net visual-studio-2008 custom-controls

我有一个自定义控件,显示从数据库中获取的值(产品价格)。出于性能原因,此值存储在缓存中,并且工作正常。但是,在Visual Studio 2008的设计模式下,我收到一条错误,上面写着“错误渲染控件。发生了未处理的异常。缓存不可用”

我正在使用ControlDesigner,使用非常简单的GetDesignTimeHtml:

public override string GetDesignTimeHtml()
{
  return "[$9.99]";
}

我希望这可以解决问题,但事实并非如此。

2 个答案:

答案 0 :(得分:4)

您需要为自定义控件的Cache访问添加包装器,否则当HttpContext.Current为null时,它们将在设计模式下失败。你想做这样的事情:

public object GetFromCache(string key)
{
     var myContext = HttpContext.Current;
     if(myContext != null)
     {
         return myContext.Cache[key];
     }
     return "[Design Time Value]";
}

答案 1 :(得分:0)

您是否直接引用ASPX文件中的Cache对象?