コード例 #1
0
        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);
            }
        }