0

GetVaryByCustomString メソッドにブレークポイントを配置しても、メソッドが起動されません。

ユーザーが選択した言語に応じてキャッシュしたいアクション:

[OutputCache(CacheProfile = "24HoursCache", VaryByCustom = "lang")]
public ActionResult MyAction()
{
    ...
}

Web.config のキャッシュ プロファイル:

<configuration>
    ...
    <system.web>
        ...
        <caching>
            <outputCacheSettings>
                <outputCacheProfiles>
                    <clear />
                    <add name="24HoursCache" duration="86400" location="Client" varyByParam="none" />
                </outputCacheProfiles>
            </outputCacheSettings>
        </caching>
    </system.web>
    ...
</configuration>

Global.asax.cs ファイルでは、次のようになります。

public override string GetVaryByCustomString(HttpContext context, string value)
{
    if (value.ToLower() == "lang")
    {
        return Thread.CurrentThread.CurrentUICulture.Name;
    }

    return base.GetVaryByCustomString(context, value);
}

どんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

0

実際には、場所は「クライアント」ではなく「サーバー」に設定する必要があります。

<configuration>
        ...
        <system.web>
            ...
            <caching>
                <outputCacheSettings>
                    <outputCacheProfiles>
                        <clear />
                        <add name="24HoursCache" duration="86400" location="Server" varyByParam="none" />
                    </outputCacheProfiles>
                </outputCacheSettings>
            </caching>
        </system.web>
        ...
    </configuration>

そして、それはうまくいきます。

于 2014-12-02T23:26:18.427 に答える