ASP.NET MVC 控制器操作中的 OutputCache 键格式
OutputCache key format in ASP.NET MVC controller action
控制器操作输出缓存的确切键格式是什么?
[OutputCache(CacheProfile = "Games")]
public virtual ActionResult EventGames(int? id, string slug)
添加到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
控制器操作输出缓存的确切键格式是什么?
[OutputCache(CacheProfile = "Games")]
public virtual ActionResult EventGames(int? id, string slug)
添加到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