Asp.net mvc 5 如何在具有对象参数的内联渲染子操作上正确使用MVC5 OutputCache?

Asp.net mvc 5 如何在具有对象参数的内联渲染子操作上正确使用MVC5 OutputCache?,asp.net-mvc-5,outputcache,Asp.net Mvc 5,Outputcache,我有一个父页面,需要通过传递对象(childActionClass)内联呈现子操作(SomeChildAction)。问题是子操作控制器方法的OutputCache无法将该对象识别为VaryByParam中的参数 我的假设是,因为这是一个内联操作,所以传递的对象不是“真正的”querystring或Post参数,所以VaryByParam永远不会看到它。好吧,那我怎么改变缓存呢?当前,页面上此子操作的每个实例都呈现相同的缓存html,这是不正确的 我的控制器操作看起来像这样 [OutputCac

我有一个父页面,需要通过传递对象(childActionClass)内联呈现子操作(SomeChildAction)。问题是子操作控制器方法的OutputCache无法将该对象识别为VaryByParam中的参数

我的假设是,因为这是一个内联操作,所以传递的对象不是“真正的”querystring或Post参数,所以VaryByParam永远不会看到它。好吧,那我怎么改变缓存呢?当前,页面上此子操作的每个实例都呈现相同的缓存html,这是不正确的

我的控制器操作看起来像这样

[OutputCache(Duration = 1000, VaryByParam = "*")] //Doesn't work
[ChildActionOnly]
public ActionResult SomeChildAction(childActionClass childObject)
{
    var model = new childViewModel();
    model.something = doSomething(childObject);

    return PartialView("_ChildView", model);
}
@Html.Action("SomeChildAction", new childActionClass { p1 = Model.p1 })
我的父视图看起来像这样

[OutputCache(Duration = 1000, VaryByParam = "*")] //Doesn't work
[ChildActionOnly]
public ActionResult SomeChildAction(childActionClass childObject)
{
    var model = new childViewModel();
    model.something = doSomething(childObject);

    return PartialView("_ChildView", model);
}
@Html.Action("SomeChildAction", new childActionClass { p1 = Model.p1 })
如果我禁用OutputCache,它就会正常工作。但我需要启用OutputCache并至少存储1000个。我可能最终会在页面中出现十几个或更多此子操作的实例,每个实例都有自己的模型和输出,因此需要禁用输出缓存或使其正常工作