gpt4 book ai didi

asp.net-mvc - 使用缓存配置文件缓存 ChildActions 不起作用?

转载 作者:行者123 更新时间:2023-12-02 02:01:28 26 4
gpt4 key购买 nike

我尝试使用缓存配置文件在我的 mvc 应用程序中缓存子操作,但出现异常:持续时间必须是正数。

我的 web.config 如下所示:

<caching>
<outputCache enableOutputCache="true" />
<outputCacheSettings>
<outputCacheProfiles>
<add name="TopCategories" duration="3600" enabled="true" varyByParam="none" />
</outputCacheProfiles>
</outputCacheSettings>
</caching>

我的 child 的行为是这样的:

[ChildActionOnly]
[OutputCache(CacheProfile = "TopCategories")]
//[OutputCache(Duration = 60)]
public PartialViewResult TopCategories()
{
//...
return PartialView();
}

在 View 中我只需调用@Html.RenderAction("TopCategories", "Category")

但是我收到一个错误:异常详细信息:System.InvalidOperationException:持续时间必须是正数。

如果我不使用缓存配置文件,它就可以工作。知道问题出在哪里吗?

最佳答案

我对 related question 进行了一些挖掘查看 mvc 3 源代码,除了 DurationVaryByParam 之外,它们绝对不支持任何属性。他们当前实现的主要错误是,如果您不提供其中任何一个,您将收到一个异常,告诉您提供该选项,而不是异常说您尝试使用的内容不受支持。另一个主要问题是,即使您在 web.config 中关闭缓存,它们也会缓存,这看起来非常蹩脚且不正确。

我遇到的最大问题是它们使用相同的属性,该属性在 View 和部分 View 中都有效,但实际上它可能应该是 2 个不同的属性,因为部分 View 非常有限并且行为有很大不同,至少在当前的实现中是这样。

关于asp.net-mvc - 使用缓存配置文件缓存 ChildActions 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4728958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com