ASP.NET MVCアプリケーションで利用可能なキャッシュ・オプションは、ASP.NET MVCフレームワークから来るが、コアASP.NETフレームワークからはありません。
1.リクエストスコープのキャッシング
すべてのASP.NET要求は、ASP.NETフレームワークは、新しいインスタンスの作成から始まる
との相互作用の中心点として機能するSystem.Web.HttpContextオブジェクトの
要求全体のコンポーネントを。
HttpContextの多くの特性の一つであるHttpContext.Items プロパティ、
任意のコンポーネントは、要求とその寿命を通して住ん辞書
操作することができます。
例えば:
// コレクション内のデータを格納する方法: HttpContext.Items [ 「IsFirstTimeUser 」 ] = 真; // 辞書からデータを取得することも簡単である: BOOL IsFirstTimeUser =(BOOL)HttpContext.Items [ " IsFirstTimeUser " ]。
2.ユーザースコープのキャッシング
ASP.NETのセッション状態を使用すると、複数のリクエスト間で持続するデータを格納することができます。
// セッションでユーザー名を格納 [HttpContext.Session 「ユーザ名」 = 「Hrusi 」。 // 取得し、型指定されていない値キャスト: 文字列名=(文字列)HttpContext.Session [ 「ユーザー名」 ];
<のsystem.web>
<てsessionStateタイムアウト= "30" />
</system.web>
3. ASP.NETのキャッシュ
System.Web.Cacheは、キー/値ストアです
4.出力キャッシュ
ASP.NETは、要求の結果として生成されるHTMLをキャッシュする、より高いレベルで動作する能力を提供します。
[OutputCache(時間= 60、VaryByParam = " なし" )] 公共のActionResult接触() { ViewBag.Message = DateTime.Now.ToString()。 返すビューを(); }
キャッシュの場所を設定します
たとえば、あなたは現在のユーザーの名前を表示するページをキャッシュしたいと言います。あなたがいる場合
、デフォルトどれでも設定を使用し、ページを要求する最初の人の名前が間違ってます
すべてのユーザーに表示されます。
これを避けるために、出力に設定されLocationプロパティで出力キャッシュを構成する
データのみが利用者の中に保存されているようにCacheLocation.ClientとNOSTORE trueに設定
ローカルWebブラウザ:
[OutputCache(期間= 3600、VaryByParam = " なし"、LOCATION = OutputCacheLocation.Client、NOSTORE = 真)] パブリック(についてのActionResult) { ViewBag.Message = " 現在のユーザ名が" + User.Identity.Name。 返すビューを(); }
リクエストパラメータに基づいて、出力キャッシュを変えます
たとえば、あなたが詳細表示詳細という名前のコントローラのアクション持っていると言う
オークションを:
[OutputCache(時間= INT .MaxValue、VaryByParam = " ID " )] 公共のActionResult詳細(文字列ID) { VARのオークション= _repository.Find <オークション> (ID)。 返すビュー(「詳細」、オークションを)。 }
ます。https://www.cnblogs.com/davidgu/p/3331699.htmlで再現