1

クエリ値に応じて子アクションの出力をキャッシュすることはできませんか?

public class HomeController : Controller
{
    public ActionResult About()
    {
        ViewBag.Message = DateTime.Now.ToLongTimeString();

        return View();
    }

    [OutputCache(Duration = 20, VaryByParam = "id")]
    public ActionResult PartialViewTestAbout()
    {
        ViewBag.Second = DateTime.Now.Second;
        return View();
    }
}


About.cshtml

<hgroup class="title">
    <h1>@ViewBag.Title.</h1>
    <h2>@ViewBag.Message</h2>
</hgroup>


@Html.Action("PartialViewTestAbout")
.
.
.

PartialViewTestAbout.cshtml:
----------
<p>
    This is a partial view About.
    <h1 style="color:red;">@ViewBag.Message</h1>
    @ViewBag.Second
</p>

varybyparam なしでうまく機能しています。しかし、パラメーターに応じて PartialViewAboutTest を更新する必要があります。OutPutCache を About ActionREsult に配置すると、VaryByParam が機能します。しかし、この例の PartailViewTestAbout である子アクションでは機能しません。クエリを変更しますが、ページを更新するためにキャッシュ期間が長くなるのを待っていません...

4

1 に答える 1