4

アプリで水平メニューと垂直メニューをキャッシュするために OutputCache を使用しています。私は通常、キャッシュしたいアクションでこのようなものを使用します

    [OutputCache(Duration=3600, VaryByParam="none", Location=OutputCacheLocation.Client, NoStore=true)]
    public ActionResult ActionName()
    {
        .......
    }

しかし、それが子アクションの場合、使用する必要があります

    [ChildActionOnly]
    [OutputCache(Duration = 180, VaryByParam = "none")]
    public ActionResult Menu() 
    {
       ......
    }

子アクションで OutputCache を使用する場合、Location や NoStore などのプロパティを指定できません。問題は、子アクションのキャッシュの場所 (クライアント、サーバーなど) を指定できない場合、デフォルトではどこに保存されるのでしょうか?? ありがとう!!

(私の英語でごめんなさい)

4

3 に答える 3

2

ここでは推測していますが、おそらくサーバーにのみ保存されるでしょう。部分的なビュー (子アクションの結果である可能性が高い) がクライアントに保存されるという考えは意味がありません。クライアントは、サーバー上でのページのアクションの内訳をまったく認識していません。

私の見方では、ページ全体がキャッシュされていない限り、クライアントはサーバーにアクセスしてページをレンダリングする必要があり、その時点で、サーバーはキャッシュの子アクションの結果を返すことができます。

于 2014-01-24T19:06:58.373 に答える
2

子アクションに出力キャッシュを使用すると、クライアント側ではなくサーバーにキャッシュされます。

于 2016-05-02T10:20:17.053 に答える
-3

残念ながら、それはクライアントにキャッシュされます。childAction メソッドにブレークポイントを設定し、複数のブラウザーからアプリケーションを実行するだけです。ブラウザーごとに、ChildAction がキャッシュ期間中に呼び出されます。

于 2015-05-25T19:13:22.683 に答える