3

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

我正在使用一个 ControlDesigner,带有一个非常简单的 GetDesignTimeHtml:

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

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

4

2 回答 2

4

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

public object GetFromCache(string key)
{
     var myContext = HttpContext.Current;
     if(myContext != null)
     {
         return myContext.Cache[key];
     }
     return "[Design Time Value]";
}
于 2009-01-31T19:07:50.967 回答
0

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

于 2009-01-30T22:36:47.940 回答