Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

OutputCacheAttribute (Clase)

Visual Studio 2010

Representa un atributo que se utiliza para marcar un método de acción cuyo resultado estará almacenado en memoria caché.

Espacio de nombres:  System.Web.Mvc
Ensamblado:  System.Web.Mvc (en System.Web.Mvc.dll)

[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, Inherited = true, 
	AllowMultiple = false)]
public class OutputCacheAttribute : ActionFilterAttribute

El tipo OutputCacheAttribute expone los siguientes miembros.

  NombreDescripción
Método públicoOutputCacheAttributeInicializa una nueva instancia de la clase OutputCacheAttribute.
Arriba

  NombreDescripción
Propiedad públicaCacheProfileObtiene o establece el nombre de perfil de la memoria caché.
Propiedad públicaDurationObtiene o establece la duración de caché, en segundos.
Propiedad públicaLocationObtiene o establece la ubicación.
Propiedad públicaNoStoreObtiene o establece un valor que indica si se va a almacenar la memoria caché.
Propiedad públicaOrderObtiene o establece el orden en el que se ejecutan los filtros de acción. (Se hereda de FilterAttribute).
Propiedad públicaSqlDependencyObtiene o establece la dependencia de SQL.
Propiedad públicaTypeIdCuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).
Propiedad públicaVaryByContentEncodingObtiene o establece la codificación de variación por contenido.
Propiedad públicaVaryByCustomObtiene o establece el valor de variación por personalización.
Propiedad públicaVaryByHeaderObtiene o establece el valor de variación por encabezado.
Propiedad públicaVaryByParamObtiene o establece el valor de variación por parámetro.
Arriba

  NombreDescripción
Método públicoEqualsInfraestructura. Devuelve un valor que indica si esta instancia equivale a un objeto especificado. (Se hereda de Attribute).
Método protegidoFinalizePermite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoGetHashCodeDevuelve el código hash de esta instancia. (Se hereda de Attribute).
Método públicoGetTypeObtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método públicoIsDefaultAttributeCuando se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método públicoMatchCuando se reemplaza en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Se hereda de Attribute).
Método protegidoMemberwiseCloneCrea una copia superficial del objeto Object actual. (Se hereda de Object).
Método públicoOnActionExecutedLlamado por el marco MVC cuando se ejecuta el método de acción. (Se hereda de ActionFilterAttribute).
Método públicoOnActionExecutingLlamado por el marco MVC antes de que se ejecute el método de acción. (Se hereda de ActionFilterAttribute).
Método públicoOnResultExecutedLlamado por el marco MVC cuando se ejecuta el resultado de la acción. (Se hereda de ActionFilterAttribute).
Método públicoOnResultExecutingSe llama antes de que se ejecute el resultado de la acción. (Invalida a ActionFilterAttribute.OnResultExecuting(ResultExecutingContext)).
Método públicoToStringDevuelve una cadena que representa el objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privado_Attribute.GetIDsOfNamesAsigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoObtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoCountRecupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.InvokeProporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Arriba

El almacenamiento en la caché de resultados le permite almacenar el resultado de un método de acción en memoria en el servidor web. Por ejemplo, si el método de acción representa una vista, la página de vista estará almacenada en memoria caché. A continuación, esta página almacenada en la caché está disponible en la aplicación para las solicitudes posteriores. El almacenamiento en la caché de resultados ahorra a la aplicación el tiempo y los recursos que necesitaría para recrear el resultado del método de acción.

En ASP.NET MVC, puede utilizar el atributo OutputCacheAttribute para marcar los métodos de acción cuyo resultado desea almacenar en memoria caché. Si marca un controlador con el atributo OutputCacheAttribute, el resultado de todos los métodos de acción del controlador se almacenarán en memoria caché.

Las propiedades contenidas en OutputCacheAttribute son casi igual que las propiedades de la directiva @ OutputCache. La única propiedad @ OutputCache que no admite OutputCacheAttribute es VaryByControl.

Utilizar un perfil de la memoria caché

Para evitar la duplicación de código, puede establecer un perfil de la memoria caché en el archivo Web.config, en lugar de establecer valores de la caché individualmente en páginas. A continuación, puede hacer referencia al perfil utilizando la propiedad CacheProfile del atributo OutputCache. En el ejemplo siguiente, se muestra una sección de un archivo Web.config que establece un perfil de la memoria caché. Este perfil de la memoria caché se aplicará a todas las páginas a menos que la página reemplace estos valores.

<system.web>
  <caching>
    <outputCacheSettings>
      <outputCacheProfiles>
        <add name="MyProfile" duration="60" varyByParam="*" />
      </outputCacheProfiles>
    </outputCacheSettings>
  </caching>
</system.web>

En el siguiente ejemplo se muestra cómo utilizar OutputCacheAttribute para controlar el almacenamiento en la caché para el método de acción About. El atributo establece la duración del almacenamiento en caché en un minuto. Cambios secundarios al método de acción About y la vista About le permite ver el momento en que la vista estuvo almacenada en memoria caché recientemente.

Si hace clic repetidamente en la pestaña de la vista About, puede ver que la página permanece almacenada en memoria caché durante 10 segundos, porque el atributo OutputCache cambió la duración que se estableció en el archivo Web.config.

En el ejemplo siguiente se muestra el método de acción About.


[OutputCache(CacheProfile = "MyProfile", Duration = 10)]
public ActionResult About()
{
    ViewData["Message"] = "This page was cached at " + DateTime.Now;

    return View();
}


En el siguiente ejemplo se muestra la vista About.


<asp:Content ID="aboutTitle" ContentPlaceHolderID="TitleContent" runat="server">
    About Us
</asp:Content>

<asp:Content ID="aboutContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2>About</h2>
    <p>
        <%= Html.Encode(ViewData["Message"]) %>
    </p>
</asp:Content>


Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Mostrar: