如何在 MVC,c# 中自定义 OutputCache 键?

How to customize OutputCache key in MVC, c#?

我正在使用 MVC 5 和 Razor 引擎。
我有一个控制器的操作如下:

[HttpPost]
[ValidateAntiForgeryToken]
[OutputCache(Duration = 120, Location = OutputCacheLocation.Server, VaryByParam = "*")]
public PartialViewResult Index(DevicesAjaxViewModel viewModel)
{ ... }

如您所见,操作参数是一个 class,每当我使用 OutputCache 时,都不会缓存任何内容,并且操作会在每个请求中运行。我认为这是因为缓存键。
那么如何自定义OutputCache呢?可能吗?

您没有缓存,因为 VaryByParam 设置为所有内容 - *。通常该选项用于指定控制器操作的部分输入参数(您的 viewModel)。