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