我第一次使用Microsoft.AspNetCore.Mvc.ResponseCacheAttribute
,遇到了一个问题,该问题我以前使用ASP.NET中VaryByCustom
中的OutputCache
属性可以解决(并使用public override string GetVaryByCustomString(HttpContext context, string s)
在global.asax中。
此VaryByCustom缓存似乎在ASP.NET Core中不再存在。我是否在这里缺少内置的替代方法,或者我需要自己实现此功能才能实现类似的目的?
答案 0 :(得分:1)
据我了解,ASP.NET核心中有两个灵活的选择:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("user-data-dir=C:\\Users\\AtechM_03\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 2")
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options)
driver.get("https://www.google.co.in")
,请使用VaryByHeader
或VaryByQueryKeys
。 使用标头时,您需要编写一个值来作为标头而变化,它可以是任意值(无需向客户端公开数据):
ResponseCacheAttribute
本质上,这就是Response.Headers.Add("X-My-Vary-Header", "this-is-variable");
曾经为您所做的全部。按照我的看法,您不再被迫将这段代码放在特定的方法/文件中(例如global.asax)。
VaryByCustomString
标记助手。在这里,您可以通过<cache>
,vary-by-header
,vary-by-route
甚至是自定义vary-by-user
来“改变”各种各样的内容。
在这里查看并决定是使用属性还是使用缓存标签帮助程序:https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/built-in/cache-tag-helper