ASP.NET MVCでETagsをサポートするにはどうすればよいですか?ASP.NET MVCでETagsをサポートするにはどうすればよいですか?
答えて
@Elijahグローバーの答えはの一部であります答えは、実際には完全ではありません。これでETagが設定されますが、サーバー側でチェックすることなくETagsの利点を得ることはできません。
var requestedETag = Request.Headers["If-None-Match"];
if (requestedETag == eTagOfContentToBeReturned)
return new HttpStatusCodeResult(HttpStatusCode.NotModified);
また、別の先端がそうでなければ、デフォルトでは、それは「プライベート」だとのETagが応答して設定されることはありません、あなたはレスポンスのキャッシュ可能性を設定する必要があるということです:
あなたがそれを行いますResponse.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
だから、完全な例:私はこれは間違っていると思う
public ActionResult Test304(string input)
{
var requestedETag = Request.Headers["If-None-Match"];
var responseETag = LookupEtagFromInput(input); // lookup or generate etag however you want
if (requestedETag == responseETag)
return new HttpStatusCodeResult(HttpStatusCode.NotModified);
Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
Response.Cache.SetETag(responseETag);
return GetResponse(input); // do whatever work you need to obtain the result
}
ETAGのMVCはWebFormsまたはHttpHandlersと同じです。
ファイルMD5またはShortGuidを使用している最善の方法で、ETAG値を作成する方法が必要です。
.NETはETAGなどの文字列を受け付けているので、あなたはMIXから
String etag = GetETagValue(); //e.g. "00amyWGct0y_ze4lIsj2Mw"
Response.Cache.SetETag(etag);
ビデオを使用して簡単に設定することができ、彼らが使用する最後にETAGのRESTと
!静的なETagを追加すると、あなたのコンテンツは決して変化しないということになります。 ETagsのアイデアは、期限切れのヘッダーと同様に、コンテンツが変更されたことをブラウザに知らせることです。 –
私は、harcodedの値は、説明のためのものだと思います...あなたはその場で何かを作成して変更することができます。 – Romias
確かに。 MD5を使用することの非常に言及は、それが計算されていることを示唆しています(たぶん、それが変更された場合、または毎回変更された場合のみ)、返されます。静的な値を使用することは、明らかに示唆ではありません。 –
- 1. 戻るボタンをサポートしたASP.NET MVCウィザードを作成するにはどうすればよいですか?
- 2. ASP.NET MVCビューでページタイトルを設定するにはどうすればよいですか? ASP.NET MVCのビューで
- 3. asp.net MVCコントローラから非MVC asp.netページにデータをPOSTするにはどうすればよいですか?
- 4. ASP.NET MVC 2アプリケーションをMVC 3に手動で変換するにはどうすればよいですか?
- 5. asp.net mvcまたはasp.netでjsファイルをコンパイルするにはどうすればよいですか?
- 6. asp.net webformsまたはasp.net mvcでこのURLパターンをリダイレクトするにはどうすればよいですか?
- 7. MVCでMEFを使用するにはどうすればよいですか?
- 8. ASP.NET WebサイトプロジェクトでASP.NET MVC 3を使用するにはどうすればよいですか?
- 9. ASP.NET MVCアプリケーションでASP.NETページを使用するにはどうすればよいですか?
- 10. ウェブサイトでVIMキーバインドをサポートするにはどうすればよいですか?
- 11. アンドロイドでMOV(クイックタイム)をサポートするにはどうすればよいですか?
- 12. ASP.NET MVC 1で静的式ActionLinksなどを取得するにはどうすればよいですか?
- 13. ASP.NET MVC RC2でネストされたマスターページを実装するにはどうすればよいですか?
- 14. ASP.NET MVCでシリアル化された文字列を処理するにはどうすればよいですか?
- 15. ASP.NET MVCで自動生成されたコードを表示するにはどうすればよいですか?
- 16. AutoMapperを使用してASP.NET MVCでリストをSelectListにマップするにはどうすればよいですか?
- 17. ASP.NET MVCでViewContextのないルートを作成するにはどうすればよいですか?
- 18. ASP.NET MVC 2.0でエリア内で共有ビューを使用するにはどうすればよいですか?
- 19. ASP.NET MVCで完全なtrace.axdを生成するにはどうすればよいですか?私のアプリケーションで
- 20. ASP.NET MVC 3イントラネットアプリケーションでローカルAdministratorsグループでAuthorizeAttributeを使用するにはどうすればよいですか?
- 21. ASP.NET MVCで同じルートで2つのビューを表示するにはどうすればよいですか?
- 22. ASP.NET MVC 2アプリケーションでJSON呼び出しを有効にするにはどうすればよいですか?
- 23. ASP.NET MVCでセッション状態を無効にするにはどうすればよいですか?
- 24. ASP.NET MVCでユーザーにアクション「成功」フィードバックを提供するにはどうすればよいですか?
- 25. ASP.NET MVCでクライアントサイドとプロキシのキャッシュを無効にするにはどうすればよいですか?
- 26. ASP.NET MVCで未処理の例外をログに記録するにはどうすればよいですか?
- 27. ASP.NET MVCでラベルIDを動的に生成するにはどうすればよいですか?
- 28. ASP.NET MVCのSelectListで使用するEntityCollection型のオブジェクトを返すにはどうすればよいですか?
- 29. Asp.Net MVC 3のすべてのビューで@usingを実装するにはどうすればよいですか?
- 30. Android、タブレットをサポートするにはどうすればよいですか?
これは良い答えです。これを実装するには、このテストロジックを実装する抽象ActionFilterと抽象メソッド "Abstract string CalculateEtag(HttpRequest)"を実装し、Etagが必要な各ケースに対してサブクラス化することをお勧めしますサポート。これは、あなたのアクションメソッドをスキニーに保ち、エタグ生成のテストを容易にします。 –
eTagOfContentToBeReturnedのストアは何ですか?どのように各アクションのためのエタグを生成する? –