Изображение У меня есть представление, кэшированное с атрибутом OutputCache, но мне все еще нужно увеличить счетчик, который записывает, что страница была просмотрена, как я могу это сделать?
Я думал о создании собственного пользовательского атрибута ActionFilterAttribute и использовании порядка выполнения фильтра действий для записи этого... но я не уверен, что это сработает.
eg.
[IncrementViewCountFilter(Order=1)]
[OutputCache(Duration=60,Order=2)]
public ActionResult Index(int questionId)
{ ... }
Во-первых, мое предположение заключается в том, что если вызывается OutputCache, а страница кэшируется, то код контроллера запускаться не будет.
Следующая проблема, которую я предполагаю, заключается в том, что IncrementViewCountFilter не будет знать об идентификаторе вопроса, поэтому как он узнает, что увеличивать (потому что он выполняется до выполнения основного кода индекса).
Во-вторых, если бы IncrementViewCountFilter знал идентификатор вопроса... и он получает много обращений, вы бы не хотели, чтобы он все время писал в БД... но только когда доходит до определенного числа... а затем сбрасывает ' выход.
У кого-нибудь есть мысли?