【发布时间】:2015-08-02 20:50:08
【问题描述】:
我正在使用MVCDonutCaching 库进行甜甜圈缓存。
使用此库进行甜甜圈缓存的背景:
它的工作方式是,您可以缓存视图,但将其中的一部分排除在缓存之外,即“甜甜圈洞”。您可以通过将不可缓存的内容作为部分视图来实现此目的,该部分视图由子操作呈现。然后在视图中,您将该子操作称为Html.RenderAction(...。这样,除了子操作之外的所有内容都将被缓存。
问题:
我需要缓存一个包含表单的视图。问题是表单包含一个AntiForgeryToken,显然不应该缓存它。
一个明显的解决方案是把它做成一个“甜甜圈洞”,然后通过 一个子动作。但是,它需要复杂的视图模型数据,并且子操作只接受原始类型作为参数,否则会出现序列化错误。
有什么好办法解决这个问题?
【问题讨论】:
-
一种方法是在子操作中创建表单的视图模型。但我不喜欢这个选项,因为表单需要获取大量数据,所以我希望它与视图的其余部分一起缓存。
标签: asp.net asp.net-mvc caching donut-caching child-actions