3

データベースから取得した値 (製品の価格) を表示するカスタム コントロールがあります。この値はパフォーマンス上の理由からキャッシュに保存され、正常に機能します。ただし、Visual Studio 2008 のデザイン モードでは、「エラー レンダリング コントロール。ハンドルされていない例外が発生しました。キャッシュが利用できません」というエラーが表示されます。

非常に単純な GetDesignTimeHtml を使用して、ControlDesigner を使用しています。

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

これで問題が解決することを願っていましたが、そうではありません。

4

2 に答える 2

4

カスタムコントロールのキャッシュアクセスにラッパーを追加する必要があります。そうしないと、HttpContext.Currentがnullの場合にデザインモードで失敗します。あなたはこのようなことをしたいです:

public object GetFromCache(string key)
{
     var myContext = HttpContext.Current;
     if(myContext != null)
     {
         return myContext.Cache[key];
     }
     return "[Design Time Value]";
}
于 2009-01-31T19:07:50.967 に答える
0

ASPX ファイルで Cache オブジェクトを直接参照していますか?

于 2009-01-30T22:36:47.940 に答える