수색…
사용자 지정 작업 필터
우리는 여러 가지 이유로 사용자 정의 액션 필터를 작성합니다. 로깅을위한 사용자 지정 동작 필터 또는 작업 실행 전에 데이터베이스에 데이터 저장을위한 사용자 지정 동작 필터가있을 수 있습니다. 데이터베이스에서 데이터를 가져 와서 응용 프로그램의 전역 값으로 설정하는 데 사용할 수도 있습니다.
사용자 지정 동작 필터를 만들려면 다음 작업을 수행해야합니다.
- 수업 만들기
- ActionFilterAttribute 클래스에서 상속
다음 방법 중 하나 이상을 재정의하십시오.
OnActionExecuting -이 메소드는 컨트롤러 액션이 실행되기 전에 호출됩니다.
OnActionExecuted -이 메소드는 컨트롤러 조치가 실행 된 후에 호출됩니다.
OnResultExecuting -이 메소드는 컨트롤러 조치 결과가 실행되기 전에 호출됩니다.
OnResultExecuted -이 메소드는 컨트롤러 조치 결과가 실행 된 후에 호출됩니다.
아래 목록과 같이 필터를 만들 수 있습니다.
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);
}
}
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow