Asp.net mvc 在MVC中使用outputcache
我宣布一项行动如下Asp.net mvc 在MVC中使用outputcache,asp.net-mvc,outputcache,Asp.net Mvc,Outputcache,我宣布一项行动如下 [Route("{language}/Navigation/Test")] [OutputCache(Duration = 3600, VaryByParam = "none")] public ActionResult Test() { return View(); } 为了检查outputcache设置,我在view Test.cstml中添加了@DateTime.Now.Ticks.ToString() 困扰我的是,当我第一次运行时,视图被缓存,页面刷新返回相同
[Route("{language}/Navigation/Test")]
[OutputCache(Duration = 3600, VaryByParam = "none")]
public ActionResult Test()
{
return View();
}
为了检查outputcache设置,我在view Test.cstml中添加了@DateTime.Now.Ticks.ToString()
困扰我的是,当我第一次运行时,视图被缓存,页面刷新返回相同数量的刻度。现在,如果我更改语言并设置勾号更改的数量,即缓存中不提供视图
我试图删除VaryByParam=“none”,但它总是产生相同的结果
这里的问题是,无论使用何种语言,如何为缓存视图提供服务。VaryByParam
因URL中传递的参数而异。例如,URL www.stackoverflow.com/page?param1=5。由于DE
与EN
是不同的URL,因此在缓存中找不到该页面,因此它会请求一个新的URL
从
以分号分隔的字符串列表,用于更改输出缓存。默认情况下,这些字符串对应于使用GET方法属性发送的查询字符串值,或使用POST方法发送的参数。当此属性设置为多个参数时,输出缓存包含每个指定参数的请求文档的不同版本。可能的值包括none、*,以及任何有效的查询字符串或POST参数名称
底线:它基于URL,而不是路由。您可以根据查询字符串进行配置,但仅此而已