Проверьте свойство VaryByParam атрибута OutputCache.
[OutputCache(Duration=int.MaxValue, VaryByParam="id")]
public ActionResult Details(int id)
{
}
Для каждого уникального значения идентификатора будет создан уникальный экземпляр кэша.
Редактировать:
Если ваши потребности в кэшировании выходят за рамки простых сценариев VaryByParam, взгляните на VaryByCustom.Это позволит вам настроить сценарии по своему усмотрению (кэшированная версия для входа в систему, а не для входа в систему пользователя и т. Д. И т. Д.)