1

我有一个 MVC 页面被带有 2 个帖子参数的普通表单帖子击中。

供应商 ID 和还款。

在添加表单之前,我在操作上使用了 Outputcache,例如:

[OutputCache(Duration = 86400, VaryByCustom = "pageurl")]
public override ActionResult Load(int ControlId)
{

网址更改后一切正常。

现在我希望它也因 post 参数而异,所以我将其更改为:

[OutputCache(Duration = 86400, VaryByCustom = "pageurl", VaryByParam = "SupplierId;Repayment")]
public override ActionResult Load(int ControlId)
{

这不起作用。它不会为不同的帖子参数缓存单独的结果。如果我使用不同的帖子参数请求相同的 url,我会不断获得初始缓存结果。Visual Studio 中的断点也没有被击中。

有人可以告诉我我可能做错了什么吗?

4

1 回答 1

1

VaryByParam 与传递给此方法的参数有关。你唯一的参数是int ControlId.

VaryByParam = "SupplierId;Repayment"需要:

[OutputCache(Duration = 86400, VaryByCustom = "pageurl", VaryByParam = "SupplierId;Repayment")]
public override ActionResult Load(int SupplierId, int Repayment)
{
}
于 2014-12-03T15:36:25.550 回答