私は次のコントローラーを持っています:
[NoCache]
public class AccountController : Controller
{
[Authorize(Roles = "admin,useradmin")]
public ActionResult GetUserEntitlementReport(int? userId = null)
{
var byteArray = GenerateUserEntitlementReportWorkbook(allResults);
return File(byteArray,
System.Net.Mime.MediaTypeNames.Application.Octet,
"UserEntitlementReport.xls");
}
}
public class NoCache : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
var response = filterContext.HttpContext.Response;
response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
response.Cache.SetValidUntilExpires(false);
response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
response.Cache.SetCacheability(HttpCacheability.NoCache);
response.Cache.SetNoStore();
base.OnResultExecuting(filterContext);
}
}
ご覧のとおり、コントローラーは[NoCache]
属性で装飾されています。
この属性がGetUserEntitlementReport
アクションに適用されないようにする方法はありますか?
コントローラーレベルで属性を削除できることはわかっていますが、コントローラーには他の多くのアクションが含まれており、各アクションに属性を個別に適用する必要がないため、それは私のお気に入りのソリューションではありません。