Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

Cómo: Crear un filtro de acción personalizado

Un filtro de acción está compuesto por lógica que se ejecuta directamente antes o directamente después de que se ejecute un método de acción. Puede usar los filtros de acción para tareas de registro, autenticación o almacenamiento en caché de resultados, entre otras.

Un filtro de acción se implementa como un atributo que hereda de la clase ActionFilterAttribute. Si desea que la lógica se ejecute antes que el método de acción, reemplace el método OnActionExecuting. Si desea que la lógica se ejecute después que el método de acción, reemplace el método OnActionExecuted. Después de definir un filtro de acción, puede usar el atributo para marcar los métodos de acción a los que desea aplicar el filtro.

En este tema se describe cómo crear un filtro de acción y cómo usar el atributo para marcar uno o varios métodos de acción.

Para crear un filtro de acción

  1. En Visual Studio, abra el proyecto de aplicación de MVC al que desea agregar el filtro de acción.

  2. En el Explorador de soluciones, haga clic con el botón secundario en la carpeta Controladores, haga clic en Agregar y, a continuación, haga clic en Nuevo elemento.

    Se abrirá el cuadro de diálogo Agregar nuevo elemento.

  3. En Plantillas, seleccione la plantilla Clase.

  4. En el cuadro Nombre, escriba el nombre de la clase de atributos de filtro de acción que va a crear.

    NotaNota:

    Por convención, el nombre del atributo de filtro de acción debe finalizar con "Attribute", por ejemplo, LogFilterAttribute u OutputFilterAttribute.

  5. Haga clic en Agregar.

    La clase se agrega al proyecto.

  6. En la nueva clase, agregue el código para que herede de la clase ActionFilterAttribute, como se muestra en el ejemplo siguiente:

    Public Class CachingFilterAttribute
        Inherits ActionFilterAttribute
    

    public class CachingFilterAttribute : ActionFilterAttribute
    
  7. Si desea que el filtro se ejecute directamente antes de un método de acción, reemplace el método OnActionExecuting y agregue la lógica.

    El ejemplo siguiente muestra un método OnActionExecuting de esqueleto.

    Public Overrides Sub OnActionExecuting(ByVal filterContext As _
        ActionExecutingContext)
        ' The action filter logic.
    End Sub
    

    public override void OnActionExecuting(ActionExecutingContext 
        filterContext)
    {
        // The action filter logic.
    }
    
  8. Si desea que el filtro se ejecute directamente después de un método de acción, reemplace el método OnActionExecuted y agregue la lógica.

    El ejemplo siguiente muestra un método OnActionExecuted de esqueleto.

    Public Overrides Sub OnActionExecuted(ByVal filterContext As _
        ActionExecutedContext)
        ' The action filter logic.
    End Sub
    

    public override void OnActionExecuted(ActionExecutedContext 
        filterContext)
    {
        // The action filter logic.
    }
    
  9. En las clases de controlador, agregue el atributo de filtro a los métodos de acción a los que desea aplicar el filtro.

    En el ejemplo siguiente se muestra un método de acción Index marcado con el filtro de acción CachingFilter.

    <CachingFilter()> _
    Public Function Index()
        ' The action method logic.
    End Function
    

    [CachingFilter]
    public ActionResult Index()
    {
        // The action method logic.
    }
    
    

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft