我有一个自定义控件,显示从数据库中获取的值(产品价格)。出于性能原因,此值存储在缓存中,并且工作正常。但是,在Visual Studio 2008的设计模式下,我收到一条错误,上面写着“错误渲染控件。发生了未处理的异常。缓存不可用”
我正在使用ControlDesigner,使用非常简单的GetDesignTimeHtml:
public override string GetDesignTimeHtml()
{
return "[$9.99]";
}
我希望这可以解决问题,但事实并非如此。
答案 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对象?