Estoy intentando utilizar la nueva caché de página parcial disponibles en ASP.NET MVC 3. En mi opinión, estoy usando:almacenamiento en caché de página parcial y VaryByParam en ASP.NET MVC 3
<% Html.RenderAction("RenderContent", Model); %>
Qué llama al método del controlador:
[Authorize]
[OutputCache(Duration = 6000, VaryByParam = "*", VaryByCustom = "browser")]
public ActionResult RenderContent(Content content)
{
return PartialView(content);
}
Tenga en cuenta que tanto la vista original como la vista parcial están utilizando el mismo modelo de vista.
El problema es que VaryByParam
no funciona - RenderContent()
siempre devuelve el mismo HTML en caché independientemente del modelo de vista que se le pase. ¿Hay algo sobre VaryByParam
que no entiendo?
Cómo está decorado el método de acción llamado, caché inteligente? Además, VaryByParam no tiene nada que ver con el modelo pasado al método de acción; tiene que ver con los parámetros (cadena de consulta, formulario, etc.) enviados por el navegador - * al método de acción de llamada *, en este caso. – bzlm
No se especifica el almacenamiento en caché en el método de acción de llamada. –
@bzlm, el almacenamiento parcial de la página parcial * does * tiene que ver con los parámetros de entrada, y no con los campos querystring/form. Consulte http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx, sección Mejoras del almacenamiento en caché de salida. – Carvellis