Tiene usted razón en sus suposiciones.
Su directiva OutputCache está diciendo el mecanismo de almacenamiento en caché de salida para almacenar en caché la totalidad rendido página para una URL específica, durante 600 segundos.
En su ejemplo simple, probablemente no esté utilizando cadenas de consulta, sin embargo, la declaración VaryByParam dentro de la directiva le permite especificar un parámetro de cadena de consulta que garantiza que cada valor diferente de ese parámetro se almacena en caché por separado. Por ejemplo, si usted tenía:
<%@ OutputCache Duration="600" VaryByParam="ProductID"%>
entonces estas tres URL diferente de cada uno serían en caché de forma individual, y cambiando el valor del parámetro "ProductID" a algo aún no caché sería asegurar que la página se procesa y se representa por el tiempo de ejecución de ASP.NET correctamente:
http://www.example.com/viewproduct.aspx?ProductID=123
http://www.example.com/viewproduct.aspx?ProductID=3
http://www.example.com/viewproduct.aspx?ProductID=67
en su ejemplo, en su clic de botón, la página ya ha sido dictada con anterioridad (y en caché) y cuando publique de nuevo no hay diferencia en la URL que son publicar y volver a cargar de manera efectiva, por lo tanto, el tiempo de ejecución de ASP.NET le mostrará la página almacenada en caché sin pasar por e proceso de re-renderización.
Aparte de cambiar el valor de un parámetro "VaryByParam", la directiva OutputCache es bastante un enfoque de "todo o nada" para el almacenamiento en caché de páginas. Sin embargo, existe un atributo "VaryByContol" para la directiva, que solo se puede usar en los controles de usuario de ASP.NET, en lugar de una página web completa de ASP.NET.
De su pregunta, parece más que necesita investigar parcial caché de página. O eso o un mecanismo para invalidar la caché cuando ocurre algún evento. Esto generalmente se hace agregando una "dependencia de caché".
Por eso, los siguientes enlaces deben ayudar:
Caching Portions of an ASP.NET Page
Tip/Trick: Implement "Donut Caching" with the ASP.NET 2.0 Output Cache Substitution Feature
Programmatically Removing a Page from the OutputCache
¿Puedes publicar un ejemplo caliente para usar mis parámetros de publicación como VaryByParam? – lnetanel
seguro, <% @ OutputCache Duration = "600" VaryByParam = "YourPostParam1, YourPostParam2, (cualquier parámetro GET también), ..."%> – user134706
Acabo de entender esto antes de encontrar esta publicación - en realidad hemos tenido un problema con ¡un lanzamiento en vivo porque teníamos VaryByParam configurado en "ninguno" donde las páginas se publicaban solo! –