public void OnActionExecuted(ActionExecutedContext filterContext) { if (filterContext.GetETag() == AppVersion) { filterContext.Result = new HttpStatusCodeResult((int)HttpStatusCode.NotModified); } else { filterContext.SetETagWithCacheability(AppVersion); } }
public void OnActionExecuted(ActionExecutedContext filterContext) { var result = filterContext.Result as ViewResultBase; if (result == null) return; var versionable = result.Model as IVersionable; if (versionable == null) return; var versionSent = GetSentVersionOfEntity(filterContext); if (versionSent == versionable.Version) { filterContext.Result = new HttpStatusCodeResult((int)HttpStatusCode.NotModified); filterContext.HttpContext.Response.SuppressContent = true; } else { filterContext.SetETagWithCacheability(versionable.Version.ToString(CultureInfo.InvariantCulture)); } }