首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET Core ResponseCacheAttribute - VaryByCustom?

ASP.NET Core ResponseCacheAttribute - VaryByCustom?
EN

Stack Overflow用户
提问于 2018-09-18 16:04:44
回答 1查看 1.5K关注 0票数 2

我第一次使用Microsoft.AspNetCore.Mvc.ResponseCacheAttribute,并遇到了一个问题,以前我会使用ASP.NET中的OutputCache中的VaryByCustom属性(在global.asax中使用public override string GetVaryByCustomString(HttpContext context, string s) )来解决这个问题。

这种VaryByCustom缓存似乎不再存在于ASP.NET核心中。有没有一个内置的替代方案,我在这里遗漏了,或者我需要自己实现这一点,以实现类似的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-19 05:55:02

据我理解,在ASP.NET核心中有两个灵活的选项:

  1. 如果使用的是VaryByHeaderVaryByQueryKeys,则使用ResponseCacheAttribute

在使用标头时,您需要将值编写为标头,这可能是任意值(不需要向客户端公开数据):

代码语言:javascript
复制
Response.Headers.Add("X-My-Vary-Header", "this-is-variable");

本质上,这是VaryByCustomString为您所做的一切。在我看来,您不再被迫将这些代码放在特定的方法/文件中(例如,global.asax)。

  1. 在Razor中缓存时,尝试使用<cache>标记Helper。

在这里,您有各种各样的事情要根据:vary-by-headervary-by-routevary-by-user,甚至是自定义vary-by来“更改”。

在这里查看并决定是使用属性还是使用缓存标记助手:https://learn.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/built-in/cache-tag-helper

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52390591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档