2009-01-30 30 views
3

我有一個自定義控件,顯示從數據庫中獲取的值(產品的價格)。出於性能原因,該值存儲在緩存中,並且工作正常。但是,在Visual Studio 2008的設計模式中,我收到一個錯誤信息:「錯誤呈現控件發生未處理的異常。緩存不可用」呈現控件緩存時出錯錯誤

我正在使用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

你是否直接引用ASPX文件中的Cache對象?