Back End/🌈 ASP.NET
IActionFilter
James Wetzel
2022. 6. 14. 11:56
IActionFilter ?
action의 실행과 관련된 필터입니다.
OnActionExcuted ?
"action"을 실행한 후 "action" 결과 전에 호출됩니다.
OnActionExcuting ?
모델 바인딩이 완료된 후 "action"이 실행되기 전에 호출됩니다.
활용 1)
public class ActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// 로그인 여부 체크 및 권한 체크와 같은 다양한 로직을 적용 할 수 있다.
// filterContext.Result = new RedirectResult(Url);
var controllerName = routeData.Values["controller"];
var actionName = routeData.Values["action"];
var message = String.Format("{0} controller:{1} action:{2}", methodName, controllerName, actionName);
Debug.WriteLine(message, "Action Filter Log");
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var controllerName = routeData.Values["controller"];
var actionName = routeData.Values["action"];
var message = String.Format("{0} controller:{1} action:{2}", methodName, controllerName, actionName);
Debug.WriteLine(message, "Action Filter Log");
}
}
[ActionFilter]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
활용 2)
public class BasicController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
// 로그인 여부 체크 및 권한 체크와 같은 다양한 로직을 적용 할 수 있다.
// filterContext.Result = new RedirectResult(Url);
}
}
public class HomeController : BasicController
{
public ActionResult Index()
{
return View();
}
}
728x90
반응형