Я только что тестировал выходное кэширование в сборке RC ASP.NET MVC 3.
Почему-то не соблюдается свойство VaryByParam (точнее, я не уверен, что понимаю, что происходит):
public ActionResult View(UserViewCommand command) {
Здесь UserViewCommand имеет свойство slug, которое используется для поиска пользователя из базы данных.
Это мое объявление OutputCache:
[HttpGet, OutputCache(Duration = 2000, VaryByParam = "None")]
Однако, когда я пытаюсь поразить метод Action, используя другие значения 'slug' (путем манипулирования URL-адресом), вместо предоставления неверных данных (которые я пытаюсь принудительно форсировать), вместо этого он вызывает метод action.
Так, например (в порядке вызова)
/ user / view / abc -> Вызывает метод действия с slug = abc
/ user / view / abc -> Метод действия не вызван
/ user / view / xyz -> Снова вызывает метод действия с slug = xyz! Разве он не должен был выходить из кэша, потому что VaryByParam = none?
Кроме того, каков рекомендуемый способ OutputCaching в такой ситуации? (пример выше)