如何仅将OutputCache用于特定参数?

时间:2013-09-27 15:23:29

标签: asp.net asp.net-mvc outputcache

我有OutputCache的这个例子。 我的问题是,我希望仅在[id]等于NULL时才缓存页面。在所有其他情况下,我根本不想要缓存。

myController的:

[OutputCache(Duration = int.MaxValue, VaryByParam = "id")]
public ActionResult Details(int id)
{}

RouteConfig:

routes.MapRoute(
    name: "edit",
    url: "edit/{id}",
    defaults: new {
        controller = "asd",
        action = "Details",
        id = UrlParameter.Optional
    }
);

1 个答案:

答案 0 :(得分:1)

您可以指定(并实施)VaryByCustom的{​​{1}}参数:

<强> MyController.cs

OutputCacheAttribute

<强>的Global.asax.cs

[OutputCache(Duration = int.MaxValue, VaryByCustom = "idIsNull")]
public ActionResult Details(int id)
{
}