ASP.NET Web API 2默认情况下禁用了对GET请求的缓存。要启用缓存,您可以使用以下代码示例:
public class ValuesController : ApiController
{
// GET api/values
[OutputCache(Duration = 3600)] // 缓存 GET 请求 1 小时
public IEnumerable Get()
{
return new string[] { "value1", "value2" };
}
}
在上面的示例中,[OutputCache]
属性被应用到 Get
方法上,并设置了 Duration
属性为 3600 秒(1小时)。这将启用对GET请求的缓存,并将其缓存 1 小时。
请注意,[OutputCache]
属性只能应用于方法级别,而不能应用于整个控制器级别。如果您希望对整个控制器的GET请求启用缓存,您需要在每个GET方法上应用 [OutputCache]
属性。
另外,您还可以在 WebApiConfig
类的 Register
方法中全局配置缓存行为。以下是一个示例:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// 全局启用缓存
config.MessageHandlers.Add(new CacheCow.Server.CachingHandler(config));
// 配置其他路由和参数
}
}
在上面的示例中,我们通过将 CachingHandler
添加到 MessageHandlers
集合中,来全局启用缓存。这将为所有的GET请求启用缓存,并使用默认的缓存策略。
要使用此示例,您需要先安装 CacheCow.Server
包。您可以通过 NuGet 包管理器控制台运行以下命令来安装它:
Install-Package CacheCow.Server
这些示例将帮助您在ASP.NET Web API 2中启用缓存GET请求。