Tengo un problema con una vista parcial que se almacena en caché cuando no debería. Esta vista parcial se usa para mostrar el inicio/cierre de sesión en una página. Se utiliza el código simple de abajo para averiguar qué enlace para mostrarInhabilitar el almacenamiento en caché en una vista parcial en MVC 3
@if(Request.IsAuthenticated) {
<a href="@Url.Action("LogOff", "Account", new { area = "" })">Log Off</a>
}
else {
<a href="@Url.Action("LogOn", "Account", new { area = "" })">Log On</a>
}
Este Vista parcial se denomina a partir de todas las páginas en mi solicitud MVC3, utilizando
@Html.Partial("_HeaderView")
En la mayoría de mis controladores, tengo el caché de salida definido, así puedo aprovechar el almacenamiento en caché de mi contenido.
[OutputCache(Duration = 86400, VaryByParam = "*")]
Ahora mi problema es que toda la página está en caché cuando no quiero que la vista parcial sea. Esto está causando un comportamiento incorrecto, en el que a veces aparece LogOff incluso si el usuario no ha iniciado sesión, etc. ¿Hay alguna manera de almacenar en caché todo el contenido, excepto la vista parcial en cuestión?
Nick, lo siento, tuve que añadir el comentario aquí. De todos modos, funciona cuando elimino el Nostore y cambie la duración a 1. El único problema ahora es cuando el usuario inicia sesión, se llevan a la página de inicio, pero tengo que actualizarla explícitamente para que los cambios surtan efecto (para mostrar el cierre de sesión en lugar de iniciar sesión). – SimpleUser