我有一个自定义控件,它显示从数据库获取的值(产品的价格)。出于性能原因,该值存储在缓存中并且工作正常。但是,在 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]";
}
关于asp.net - 错误渲染控件缓存不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/497519/