0

在查看页面上,我已在选项卡中加载了内容。在用户单击选项卡内部时,我正在向控制器发送 ajax 请求,该控制器发回部分视图。一切正常,现在我想在此选项卡内容上实现缓存。所以,我想在第一个选项卡调用内容上加载然后缓存 60 秒。对于所有其他选项卡内容也是如此。

我尝试过这样的事情

[DonutOutputCache(Duration = 60, VaryByParam = "activeTab")]
public ActionResult GetTabData(string activeTab)
{....}

但这会在每个其他选项卡中显示第一个选项卡的缓存内容。

4

3 回答 3

0

DonutOutputCache 属性在哪里定义?也许它没有正确使用 VaryByParam?

在 MVC 3 中,您不再需要在内置的 OutputCache 属性上指定 VaryByParam 选项。

[OutputCache(Duration=60)]
public ActionResult GetTabData(string activeTab)
{....}

应该是你所需要的。

于 2013-03-28T19:57:34.027 回答
0

在我的 ASP MVC 项目中,我从未成功使用缓存操作上的属性。我的一位同事说他使用它们并且它有效,但我总是不得不告诉页面不要使用它来缓存:

$.ajaxSetup({cache:false});

或者在我的 $.ajax 中包含 cache: true / false

$.ajax({ .... cache: false, ... });
于 2013-03-28T19:58:11.457 回答
0

请参考下面的链接。它在输出捕获中给出了正确的细节

ASP.NET MVC 中的输出缓存

通过输出缓存提高性能:

通过输出缓存提高性能

于 2013-03-28T20:09:19.653 回答