呈现控件缓存时出错错误
问题描述:
我有一个自定义控件,显示从数据库中获取的值(产品的价格)。出于性能原因,该值存储在缓存中,并且工作正常。但是,在Visual Studio 2008的设计模式中,我收到一个错误信息:“错误呈现控件发生未处理的异常。缓存不可用”呈现控件缓存时出错错误
我正在使用ControlDesigner,并带有一个非常简单的GetDesignTimeHtml:
public override string GetDesignTimeHtml()
{
return "[$9.99]";
}
我希望这能解决问题,但事实并非如此。
答
您需要为自定义控件的缓存访问添加包装,否则当HttpContext.Current为null时,它们将在设计模式下失败。你想要做这样的事情:
public object GetFromCache(string key)
{
var myContext = HttpContext.Current;
if(myContext != null)
{
return myContext.Cache[key];
}
return "[Design Time Value]";
}
答
你是否直接引用ASPX文件中的Cache对象?