티스토리 뷰

🌈 .NET MVC

IActionFilter

James Wetzel 2022. 6. 14. 11:56

IActionFilter ?

action의 실행과 관련된 필터입니다.

IActionFilter

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();
    }
}
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함