C# Language
Filtry akcji
Szukaj…
Niestandardowe filtry akcji
Piszemy niestandardowe filtry akcji z różnych powodów. Możemy mieć niestandardowy filtr akcji do rejestrowania lub zapisywania danych w bazie danych przed wykonaniem jakiejkolwiek akcji. Możemy też mieć jeden do pobierania danych z bazy danych i ustawiania jej jako globalnych wartości aplikacji.
Aby utworzyć niestandardowy filtr akcji, musimy wykonać następujące zadania:
- Utwórz klasę
- Dziedzicz go od klasy ActionFilterAttribute
Zastąp przynajmniej jedną z następujących metod:
OnActionExecuting - ta metoda jest wywoływana przed wykonaniem akcji kontrolera.
OnActionExecuted - ta metoda jest wywoływana po wykonaniu akcji kontrolera.
OnResultExecuting - ta metoda jest wywoływana przed wykonaniem wyniku działania kontrolera.
OnResultExecuted - ta metoda jest wywoływana po wykonaniu wyniku akcji kontrolera.
Filtr można utworzyć, jak pokazano na poniższej liście:
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);
}
}
}