Обеспечение администрирования для действий / страниц с помощью [OutputCache] - в mvc3 - PullRequest
1 голос
/ 09 декабря 2011

Мы предложили 3 варианта предоставления кнопок администрирования на Действиях / страницах с кэшированием и хотели бы знать, есть ли другие проблемы или проблемы с производительностью / памятью / удобством использования:

  1. Кеширование пончиковой дыры - http://haacked.com/archive/2009/05/12/donut-hole-caching.aspx
  2. VaryByCustom - http://visitmix.com/writings/using-varybycustom-with-outputcache-in-asp-net-mvc-to-support-caching-for-logged-in-users
  3. Создание отдельных действий администратора / страниц

РЕДАКТИРОВАТЬ: Есть ли способ "перегрузить" действия? т.е. было бы неплохо, если бы был способ вызвать Action, который имеет атрибут [OutputCache] для не-admin пользователей и Action без атрибута [OutputCache] для admin пользователей .

Справочная информация. У нас очень простой блог, и мы хотим, чтобы административные пользователи могли редактировать / удалять сообщения и утверждать комментарии. Итак, мы добавили кнопки, которые отображаются только для административного использования, используя решение, показанное в asp.net бритва MVC3: отображать actionlink в зависимости от роли пользователя - ".If (User.IsInRole (" Administrators "))" .

Затем мы добавили [OutputCache (Duration = 30)] к этому действию и обнаружили, что все увидят либо версию администратора, либо более простую - в зависимости от того, кто первым запросил страницу после истечения времени ожидания кэша. Duh ...

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

В итоге мы выбрали опцию «3.Создать отдельные действия / страницы администратора».

Это позволяет нам создавать отдельный веб-сайт / поддомен для администрирования и упрощает структуру кэширования - мы, скорее всего, не будем выполнять кэширование на страницах администратора.

0 голосов
/ 09 декабря 2011

Это может быть только частичный ответ на ваш вопрос edit:

AFAIK, вы можете создавать только 2 перегрузки одного и того же метода действия: одна из них должна быть HttpPost, а другая должна быть HttpGet, и они (конечно) должны иметь разные параметры для компиляции.

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