public void OnActionExecuted(ActionExecutedContext ctx) { var result = ctx.Result as ViewResultBase; if (result == null) return; var versionable = result.Model as ITimeVersionable; if (versionable == null) return; var lastModifiedSent = GetSentVersionOfEntity(ctx); if (lastModifiedSent != null && lastModifiedSent.Value == versionable.LastModified) { ctx.Result = new HttpStatusCodeResult((int)HttpStatusCode.NotModified); } else { ctx.SetLastModifiedWithCacheability(versionable.LastModified); } }