public override void ExecuteResult(ControllerContext context) { bool notModified = IsNotModified(context.HttpContext.Request); if (notModified) { var statusCode = new HttpStatusCodeResult(304, "Not Modified"); statusCode.ExecuteResult(context); } else { context.HttpContext.Response.Cache.SetLastModified(lastModified); // HttpCachePolicyは、CacheabilityがPrivate(デフォルト値)に設定されていると、 // SetETag()でETagヘッダを追加しません。(既知の不具合) context.HttpContext.Response.AddHeader("ETag", guid.ToString()); base.ExecuteResult(context); } }
private void GenerateNotFoundStatus() { var notFoundResult = new HttpStatusCodeResult(HttpStatusCode.NotFound); notFoundResult.ExecuteResult(ControllerContext); }