我有一个MVC页面被一个普通的表单post与2个post参数击中。
SupplierId和还款。
在添加表单之前,我在操作上使用了Outputcache,如下所示:
[OutputCache(Duration = 86400, VaryByCustom = "pageurl")]
public override ActionResult Load(int ControlId)
{当url改变时,一切都正常工作。
现在我希望它也随post参数的不同而变化,所以我将其更改为:
[OutputCache(Duration = 86400, VaryByCustom = "pageurl", VaryByParam = "SupplierId;Repayment")]
public override ActionResult Load(int ControlId)
{这不起作用。它不会为不同的post参数单独缓存结果。如果我用不同的post参数请求相同的url,我会一直得到初始的缓存结果。Visual Studio中的断点也未命中。
谁能告诉我我可能做错了什么?
发布于 2014-12-03 23:36:26
VaryByParam与传入此方法的参数相关。您拥有的唯一参数是int ControlId。
要使用VaryByParam = "SupplierId;Repayment",您需要:
[OutputCache(Duration = 86400, VaryByCustom = "pageurl", VaryByParam = "SupplierId;Repayment")]
public override ActionResult Load(int SupplierId, int Repayment)
{
}https://stackoverflow.com/questions/24617317
复制相似问题