Como otras respuestas han declarado, buñuelo almacenamiento en caché "una especie de" obras en MVC.
No recomendaría que - en su lugar voy a ofrecer una alterantive:
se tiene una vista de los usuarios de perfil, vamos a llamarlo "UserProfile.aspx".
Ahora, en esta vista, tiene un montón de HTML, incluida una sección para "publicaciones recientes".
Ahora, supongo que esto es algo así como las últimas 10 publicaciones para el usuario.
Lo que me gustaría hacer es poner este código HTML/sección en una vista parcial, y servirlo a través de un método de acción independiente, también conocido como un PartialViewResult:
public class UserProfileController
{
[HttpGet]
[OutputCache (Duration=60)]
public ActionResult Index() // core user details
{
var userProfileModel = somewhere.GetSomething();
return View(userProfileModel);
}
[HttpGet]
public PartialViewResult DisplayRecentPosts(User user)
{
var recentPosts = somewhere.GetRecentPosts(user);
return PartialViewResult(recentPosts);
}
}
renderizar la vista parcial usando jQuery:
<script type="text/javascript">
$(function() {
$.get(
"/User/DisplayRecentPosts",
user, // get from the Model binding
function (data) { $("#target").html(data) } // target div for partial
);
});
</script>
De esta manera, puede maximizar el OutputCache para los detalles del núcleo (Índice()), pero las publicaciones recientes no se almacenan en caché. (o puede tener un período de caché muy pequeño).
El método jQuery para representar el parcial es diferente a RenderPartial, de esta forma está sirviendo el código HTML directamente desde el controlador, por lo que puede controlar el almacenamiento en caché de salida en consecuencia.
El resultado final es muy similar al caché de donuts (partes de la página en caché, otras no).
Véase también http://stackoverflow.com/questions/4082826/when-and-how-to-go-about-performing-caching-in-asp-net-mvc/4091232#4091232 –
¿Alguien sabe la respuesta? a mi actualización? – Rana
necesita usar la cuarta sobrecarga para RenderPartial (http://msdn.microsoft.com/en-us/library/dd470561.aspx) intente: 'Html.RenderPartial (" UserPosts.ascx ", Model.UserPosts, new ViewDataDictionary {Modelo = Model.UserPosts} '. – RPM1984