Подтвердить что ты не робот

Кэширование частичных представлений в ASP.NET MVC 3

Как я могу кэшировать вывод PartialViews в ASp.NET MVC 3? Я знаю, что могу украсить действие атрибутом [OutputCache], но я просто хочу включить @OutputCache прямо в PartialView, как показано ниже:

@OutputCacheAttribute

@model MvcApplication1.Models.someViewmodel

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>



@Html.Partial("_MyPartialView")
4b9b3361

Ответ 1

Это невозможно. Вам нужно использовать вспомогательный помощник Html.Action, чтобы отобразить дочернее действие, украшенное атрибутом [OutputCache], и которое будет отображать частичное.

public class MyController : Controller
{
    [OutputCache(Duration = 3600)]
    public ActionResult Index()
    {
        return View();
    }
}

а затем включить частичное:

@model MvcApplication1.Models.someViewmodel
@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>
@Html.Action("Index", "My")