想在Controller Action執行前後做某些事情,可以利用ActionFilterAttribute
包含有四個override方法:
OnActionExecuting: 在執行 Action 之前
OnActionExecuted: 在執行 Action 之後
OnResultExecuting: 在執行 Action Result 之前
OnResultExecuted: 在執行 Action Result 之後
用法:
1. 讓自訂的LogAttribute繼承ActionFilterAttribute,override OnActionExecuting,做某一些事情
namespace MyProj
{
public class LogAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//Do something
}
}
}
2.在Controller的某個Action加上Attribute:LogAttribute
namespace MyProj.ControllerName
{
public class HomeController : Controller
{
[LogAttribute]
public ActionResult Index()
{
return View();
}
......