Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 错误:呈现控件缓存不可用_Asp.net_Visual Studio 2008_Custom Controls - Fatal编程技术网

Asp.net 错误:呈现控件缓存不可用

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]"; } 我希望这可以解决问题,但事实并非

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

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

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]";
}