В MVC
OutputCacheAttribute
способен предотвратить выполнение действия его декорирования (если относительный кэш существует)Как может Атрибут предотвратить выполнение действия MVC?
Как реализовать тот же механизм, с помощью пользовательского атрибута?
В других работах я хотел бы иметь возможность украсить действие и на основе логики, внутренней для атрибута, будет решать, должно ли действие выполняться или нет.
Дополнение
Я реализовал механизм, с помощью которого, если запрос к действию приходит с строкой запросом, как flushaction=flush_silent
, пользовательский атрибут (который расширяет OutputCacheAttribute
) отменяет кэш.
То, что я хотел бы сделать, не выполнить действие:
[JHOutputCache(CacheProfile = "ContentPageController.Index")]
public ActionResult Index(string url)
{
//custom code that should not execute when flushing the cache
}
Именно то, что я искал! :) –
У меня другая проблема, проблема в том, что фактический запрос с 'flushaction = flush_silent' получает кеширование и он не будет выполняться во второй раз. Вы знаете, как предотвратить его кэширование из самого атрибута? Я могу настроить другой вопрос, если это проще. –
@ GiuseppeR Немного сложно сказать, что вы пытаетесь сделать, но это звучит как [VaryByParam] (http://msdn.microsoft.com/en-us/library/hdxfb6cy%28v=vs.85% 29.aspx) может быть то, что вам нужно посмотреть. –