我在我的ASP .NET核心应用程序中有多个控制器,我正在使用像这样的ReponseCache属性几种方法:ASP.Net核心Web API - ResponseCache属性没有添加“缓存控制”标题的响应
//controller
[Route("api/[controller]")]
[EnableCors("CorsPolicy")]
public class InsightsApiController : Controller
//method
[Route("CoursesTextContent")]
[HttpGet]
[DecryptFilter]
[ResponseCache(Duration = 60)]
public IActionResult GetCoursesContent(string locale, string tabKey, string widgetType)
,我遇到的问题是,一个控制器,这是工作的罚款,我可以看到在Chrome浏览器开发工具与响应“的Cache-Control:公众最大年龄= 60”,但在不同的控制器中,当我添加此属性时添加“Cache-Control:no-cache”。我比较了它们中的两个控制器和方法,并将它们配置为相同。我也尝试添加ASP.NET Core中间件here,但结果相同。我正在从Angular2网页调用这两种方法。我可以从客户端(请求)做些什么?或在ASP.NET核心应用程序设置中的东西?
对不起,这是一个错误的问题,但我实际上已经在代码中。 – MuazzamAli
不用担心。很奇怪的是,您可能会在不同的控制器中的两种不同的操作方法上使用相同的ResponseCache属性,并获得不同的结果。也许你有一个操作过滤器或中间件来覆盖'Cache-Control'头并将其设置为'no-cache'。 –
本来我并没有使用任何中间件,但是我尝试从我的问题链接中添加它,但也没有帮助。我尝试了所有不同的选项(公共,私人,Vary ...),但结果相同。它很奇怪。 – MuazzamAli