C# Language
Filtri di azione
Ricerca…
Filtri di azione personalizzati
Scriviamo filtri di azione personalizzati per vari motivi. Potremmo avere un filtro azioni personalizzato per la registrazione o per salvare i dati nel database prima di qualsiasi esecuzione di azioni. Potremmo anche averne uno per prelevare i dati dal database e impostarlo come valori globali dell'applicazione.
Per creare un filtro azioni personalizzato, è necessario eseguire le seguenti attività:
- Crea una classe
- Eredita dalla classe ActionFilterAttribute
Sostituire almeno uno dei seguenti metodi:
OnActionExecuting : questo metodo viene chiamato prima che venga eseguita un'azione del controllore.
OnActionExecuted : questo metodo viene chiamato dopo l'esecuzione di un'azione del controller.
OnResultExecuting : questo metodo viene chiamato prima dell'esecuzione di un risultato dell'azione del controller.
OnResultExecuted : questo metodo viene chiamato dopo l'esecuzione di un risultato dell'azione del controller.
Il filtro può essere creato come mostrato nell'elenco seguente:
using System;
using System.Diagnostics;
using System.Web.Mvc;
namespace WebApplication1
{
public class MyFirstCustomFilter : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
//You may fetch data from database here
filterContext.Controller.ViewBag.GreetMesssage = "Hello Foo";
base.OnResultExecuting(filterContext);
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var controllerName = filterContext.RouteData.Values["controller"];
var actionName = filterContext.RouteData.Values["action"];
var message = String.Format("{0} controller:{1} action:{2}", "onactionexecuting", controllerName, actionName);
Debug.WriteLine(message, "Action Filter Log");
base.OnActionExecuting(filterContext);
}
}
}