controlar programaticamente o cache de saída - desative ou ative o cache de acordo com o valor do parâmetro

Temos um cenário de comércio eletrônico bastante padronizado com listas paginadas de produtos nas categorias. Para melhor ou pior, cerca de 80% dos visitantes nunca navegam além da primeira página, dependendo da categoria, pode haver de 5 a 10 páginas a mais de resultados que são visualizados com muito menos frequência. (Sim, otimizamos o que aparece na primeira página e temos boa pesquisa - mas essa é uma discussão diferente)

Não podemos armazenar em cache cada página de resultados, porque somos limitados pela memória, mas o benefício de armazenar em cache apenas a primeira página de resultados para cada categoria seria enorme.

Eu sei que eu poderia fazer algo semelhante usando o cache de objetos para armazenar os conjuntos de dados em questão, mas isso é possível usando o cache de saída, talvez usando o objeto response.Cache?

Onde no ciclo de vida da página isso poderia ser feito? Pré-renderizar?

Muito simplificada, a URL é algo como "/ ProductList? Category = something & Page = 1" E eu quero lógica algo como (pseudocódigo):

<code>If paramater "Page" equals 1
   Use output caching: vary by param = "categoryName; page"
else
   Don't use caching at all, just render the page from scratch.
</code>

Estamos usando o ASP.NET 2.0, no IIS 6 / win2003.

questionAnswers(5)

yourAnswerToTheQuestion