MVCフィルタ基本使用
9219 ワード
Actionフィルタ
/// <summary>
///
/// </summary>
/// <param name="filterContext"></param>
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//1. action
string actionName = filterContext.ActionDescriptor.ActionName;
filterContext.HttpContext.Response.Write("ActionName=" + actionName + "</br>");
//2. action
string ctrlName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
filterContext.HttpContext.Response.Write("ControllerName=" + ctrlName + "</br>");
//3. action [HttpGet]
bool isTrue = filterContext.ActionDescriptor.IsDefined(typeof(HttpGetAttribute), false);
filterContext.HttpContext.Response.Write(" action [httpGet] " + isTrue + "</br>");
//4. action [HttpGet]
object[] httpGets = filterContext.ActionDescriptor.GetCustomAttributes(typeof(HttpGetAttribute), false);
foreach (object obj in httpGets)
{
filterContext.HttpContext.Response.Write(" action [HttpGet] :" + obj.ToString() + "</br>");
}
//5. action
ParameterDescriptor[] dics = filterContext.ActionDescriptor.GetParameters();
foreach(ParameterDescriptor dic in dics)
{
// action
filterContext.HttpContext.Response.Write(" action :" + dic.ParameterName.ToString() + "</br>");
}
base.OnActionExecuting(filterContext);
}
/// <summary>
///
/// </summary>
/// <param name="filterContext"></param>
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
}
/// <summary>
///
/// </summary>
/// <param name="filterContext"></param>
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
base.OnResultExecuting(filterContext);
}
/// <summary>
///
/// </summary>
/// <param name="filterContext"></param>
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
base.OnResultExecuted(filterContext);
}
異常フィルタ:HandleErrorAttribute
public override void OnException(ExceptionContext filterContext)
{
//1.
Exception ex= filterContext.Exception;
//2.
//2.1 ...
//3. mvc , ,
filterContext.ExceptionHandled = true;
base.OnException(filterContext);
}
構成エラー・ページ:
1 <customErrors mode="On" defaultRedirect="Error">
2 <error statusCode="404" redirect="~/ErrorMgr/P404" />
3 <error statusCode="500" redirect="~/ErrorMgr/P500"/>
4 </customErrors>