Как сохранить динамически генерируемый вид в кеше в веб-приложении MVC3? - PullRequest
1 голос
/ 21 марта 2012

Это веб-приложение asp.net mvc3.

Мы использовали кэш объектов для хранения сериализованных объектов (содержащих сведения о продукте) для предотвращения дорогостоящих запросов к базе данных.

Предположим, он хранит 100 свойств продукта в кеше объектов, который извлекается во время загрузки страницы из кеша, а не из базы данных. И затем, он передается для просмотра, который подготовил и отобразить страницу. Таким образом, он повторяется 100 раз при просмотре и вызывает все другие связанные частичные представления для подготовки страницы.

Предлагаете ли вы хранить сгенерированное представление в кеше вместо использования кеша объектов? И как это сделать?

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Вы предлагаете хранить сгенерированное представление в кеше вместо использования кеша объектов?

Да.

И как это сделать?

Путем украшения действия контроллера, обслуживающего это представление, с атрибутом [OutputCache].Или, если вы хотите кэшировать только некоторые части страницы, вы можете использовать этот атрибут для дочерних действий, которые будут отображаться с помощью помощника Html.Action (не с HTML.Partial -> вы не можете кэшировать его).

1 голос
/ 21 марта 2012

Вы можете сохранить представление в кеше, если оно статическое.Вы можете сделать это, поставив атрибут OutputCache над действием.

VB:

<OutputCache(Duration:=3660, VaryByParam:="None")>

C #

[OutputCache(Duration=3660, VaryByParam="None")]

Вы можете изменить настройку VaryByParam, если хотите кешразличаться в зависимости от параметров действия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...