为什么 ASP.NET Core CacheTagHelper vary-by-route 在路由更改时不刷新缓存?
Why does ASP.NET Core CacheTagHelper vary-by-route not refresh Cache on route change?
我定义了以下控制器方法,它创建了两个不同的 asp.net 核心路由(名为 route1 和 route2)。我期待当我调用下面的 cshtml 时:
localhost/route1
localhost/route2
我的缓存将被替换,但事实并非如此。
(传入参数 {param} 不会改变我的预期结果)
控制器页面
[Route("/route1/{param}", Name = "route1")]
public IActionResult Route1(string param)
{
ViewData["Message"] = "route1.";
return View("CacheTagHelper/vary-by-route");
}
[Route("/route2/{param}", Name = "route2")]
public IActionResult Route2(string param)
{
ViewData["Message"] = "route2.";
return View("CacheTagHelper/vary-by-route");
}
查看页面
<Cache vary-by-route="route1,route2">Time Inside Cache Tag Helper : @DateTime.Now</Cache>
没有路由值键控 route1/route2。也就是您的缓存 TagHelper 应该是:
<cache vary-by-route="param">Time Inside Cache Tag Helper : @DateTime.Now</cache>
我从发布到 github 存储库的旧问题中找到了一个很好的定义。
A comma-separated list of route data parameter names that the result
should be varied by. The route data parameter values are used as part
of the cache entry key.
我定义了以下控制器方法,它创建了两个不同的 asp.net 核心路由(名为 route1 和 route2)。我期待当我调用下面的 cshtml 时:
localhost/route1
localhost/route2
我的缓存将被替换,但事实并非如此。
(传入参数 {param} 不会改变我的预期结果)
控制器页面
[Route("/route1/{param}", Name = "route1")]
public IActionResult Route1(string param)
{
ViewData["Message"] = "route1.";
return View("CacheTagHelper/vary-by-route");
}
[Route("/route2/{param}", Name = "route2")]
public IActionResult Route2(string param)
{
ViewData["Message"] = "route2.";
return View("CacheTagHelper/vary-by-route");
}
查看页面
<Cache vary-by-route="route1,route2">Time Inside Cache Tag Helper : @DateTime.Now</Cache>
没有路由值键控 route1/route2。也就是您的缓存 TagHelper 应该是:
<cache vary-by-route="param">Time Inside Cache Tag Helper : @DateTime.Now</cache>
我从发布到 github 存储库的旧问题中找到了一个很好的定义。
A comma-separated list of route data parameter names that the result should be varied by. The route data parameter values are used as part of the cache entry key.