2009-01-30 2 views
3

У меня есть настраиваемый элемент управления, который показывает значение, полученное из базы данных (цена продукта). Это значение хранится в кеше по соображениям производительности, и оно отлично работает. Тем не менее, в режиме разработки в Visual Studio 2008 я получаю сообщение об ошибке «Error Rendering Control». Исправлено необработанное исключение. Кэш недоступен »Ошибка кэша управления рендерингом

Я использую ControlDesigner с очень простым GetDesignTimeHtml:

public override string GetDesignTimeHtml() 
{ 
    return "[$9.99]"; 
} 

Я надеялся, что это устранит проблему, но это не так.

ответ

4

Вам необходимо добавить оболочку к вашему доступу к кешу для пользовательских элементов управления, иначе они будут работать в режиме разработки, если HttpContext.Current имеет значение NULL. Вы хотите сделать что-то вроде этого:

public object GetFromCache(string key) 
{ 
    var myContext = HttpContext.Current; 
    if(myContext != null) 
    { 
     return myContext.Cache[key]; 
    } 
    return "[Design Time Value]"; 
} 
0

Вы непосредственно ссылаетесь на объект Cache в своем ASPX-файле?

Смежные вопросы