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