8

複数のページにわたって RenderPartial をキャッシュすることが可能かどうか、誰か教えてもらえますか? ユーザーが自分のプロファイルを更新しない限り、実際には変更されるべきではないユーザー プロファイルの RenderPartial があります。そのため、ページをロードするたびに戻って彼/彼女のプロファイルを取得したくありません. 更新を強制されるまで(つまり、プロファイルの更新)、むしろ部分的なものを渡したいと思います

p.haack がまとめたDonutHoleの例を見たのですが、1 つのページに関連しているようです。誰かが私を正しい方向に向けたり、アドバイスを提供したりできますか? または、一度に 1 ページしかキャッシュできませんか? ありがとう!

4

1 に答える 1

12

代わりに RenderAction を使用できます。例:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult About()
    {
        return View();
    }

    [OutputCache(Duration = 6000, VaryByParam = "none")]
    public ActionResult Cached()
    {
        // You could return whatever you want here, even a view
        // but for the purpose of the demonstration I am simply
        // returning a dynamic string value
        return Content(DateTime.Now.ToLongTimeString(), "text/html");
    }
}

Index.cshtmlandビュー内にAbout.cshtml子アクションを含めることができます。

<div>
    @{Html.RenderAction("Cached");}
</div>

両方のページでキャッシュされたバージョンを取得します。

于 2011-03-04T13:53:53.993 に答える