ASP.NET MVC: фильтрация / изменение по коду состояния HTTP в атрибуте OutputCache - PullRequest
1 голос
/ 01 июля 2010

На сайте ASP.NET MVC, который я пишу, я создаю общее действие по ошибке, которое направляется модулем HttpModule, после этого урока .В этом действии я верну View, соответствующий коду состояния, который применяется к ответу внутри HttpModule (после этого модуль передает запрос соответствующему действию).

Это все хорошокроме того, что хочу реализовать кеширование.Я не хочу использовать атрибут OutputCache без фильтрации / изменения, потому что это будет означать, что страница будет кэширована один раз.Я хочу, чтобы страница кэшировалась один раз для каждого возможного кода состояния.

Можно ли каким-либо образом фильтровать / изменять свойства OutputCacheAttribute, чтобы каждый Response.StatusCode кэшировался отдельно?

1 Ответ

0 голосов
/ 06 июля 2010

Как вы в настоящее время обрабатываете маршрутизацию к вашему действию ошибки, например, вы можете иметь:

/Errors/404
/Errors/500

Все указывают на одно и то же действие, и кеширование будет обработано для вас, потому что они являются независимыми URLи вы применяете атрибут OutputCache один раз к общему действию ошибки:

[OutputCache]
public ActionResult DisplayError(int errorCode) {
   return View(errorCode.ToString());
}

Будет ли это работать?

...