ASP.NET MVC 控制器操作中的 OutputCache 键格式

OutputCache key format in ASP.NET MVC controller action

控制器操作输出缓存的确切键格式是什么?

[OutputCache(CacheProfile = "Games")]
public virtual ActionResult EventGames(int? id, string slug)

https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/controllers-and-routing/improving-performance-with-output-caching-cs

添加到web.config缓存部分

<caching>
   <outputCacheSettings>
      <outputCacheProfiles>
         <add name="Cache1Hour" duration="3600" varyByParam="none"/>
     </outputCacheProfiles>
  </outputCacheSettings>
</caching>

然后在 ActionResult 上添加缓存配置文件

using System;
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
  public class ProfileController : Controller
  {
    [OutputCache(CacheProfile="Cache1Hour")]
    public string Index()
    {
        return DateTime.Now.ToString("T");
    }
  }
}

我想不出您需要使用 OutputCache 键的任何情况。

无论如何,密钥是使用以下因素生成的:
- 键前缀,由 OutputCacheAttribute class.
预定义 - Controller Action 的 uniqueId.
- VaryByCustom 参数。
- VaryByParam 参数。

这些因素将被连接起来,然后使用 SHA256Cng

进行哈希处理

详细实现可以在这里找到:OutputCacheAttribute.cs