Mode属性的默认值是RemoteOnly在开发期间,HandleErrorAttribute将不会拦截异常,但当应用程序部署到产品服务器时,并从另一台计算机发出请求时HandleErrorAttribute变生效
[HandleError(ExceptionType =typeof(ArgumentNullException),View ="Null")]
public ActionResult Index(){
return View();
}
在渲染视图时HandleErrorAttribute过滤器会传递一个HandleErrorInfo视图模型对象这是一个封装了异常细节的封装程序
|
名称 |
类型 |
描述 |
|
ActionName |
String |
返回生成异常的Action名称 |
|
ControllerName |
String |
返回生成异常的Controller名称 |
|
Exception |
Exception |
返回此异常 |
@model HandleErrorInfo
@{
ViewBag.Title = "Sorry";
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
</head>
<body>
@Model.Exception.StackTrace
</body>
</html>
备注:使用HandleError过滤器时一定要包含Model.Exception.StackTrace否则视图不会显示给用户,引用没必要给用户展示堆栈信息所以可以将该值放入div并隐藏
动作过滤器
用于任何目的的多用途过滤器
namespace System.Web.Mvc{
// 摘要:定义操作筛选器中使用的方法。
public interface IActionFilter{
// 摘要:在执行操作方法后调用。
// 参数:filterContext:
// 筛选器上下文。
void OnActionExecuted(ActionExecutedContext filterContext);
// 摘要:在执行操作方法之前调用。
// 参数:filterContext:
// 筛选器上下文。
void OnActionExecuting(ActionExecutingContext filterContext);
}
}
ActionExecutingContext 属性
|
名称 |
类型 |
描述 |
|
ActionDescriptor |
ActionDescriptor |
动作方法的描述 |
|
Result |
ActionResult |
动作方法的结果,设置属性非空值,过滤器可以取消请求 |








