Hmm. Vous pouvez spécifier un attribut VaryByCustom sur l'élément OutputCache. La valeur de cet attribut est transmise comme paramètre à la méthode GetVaryByCustomString que vous pouvez implémenter dans global.asax. La valeur renvoyée par cette méthode est utilisée comme un index dans les éléments mis en cache - si vous renvoyez le nombre de commentaires sur la page, par exemple, chaque fois qu'un commentaire est ajouté, une nouvelle page sera mise en cache.
Le problème est que cela n'efface pas réellement le cache. Si un article de blog fait l'objet d'une forte utilisation de commentaires, la taille de votre cache pourrait exploser avec cette méthode.
Vous pourriez également mettre en œuvre les éléments non modifiables de la page (la navigation, les publicités, l'article de blog proprement dit) en tant que contrôles utilisateur et mettre en œuvre une mise en cache partielle de la page sur chacun de ces contrôles utilisateur.