asp.net - 错误渲染控件缓存不可用

标签 asp.net visual-studio-2008 custom-controls

我有一个自定义控件,它显示从数据库获取的值(产品的价格)。出于性能原因,该值存储在缓存中并且工作正常。但是,在 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/

相关文章:

c# - 如何将重定向 URL 注册到 webhook

visual-studio - 如何从 Visual Studio 2008 解决方案导出类列表

c++ - C++ 中的 "Evaluate function"

c# - Treeview 控件 - ContextSwitchDeadlock 解决方法

android - 使用事件单击创建自定义控件

ios - 制作由多个 View Controller 调用的自定义数字键盘类

c# - MVC5 区域不工作

c# - DropDownList 未显示足够的行

asp.net - 使用名称很长的文件发布项目

c# - slider /轨迹栏替代方案