HandleError属性没有任何效果。

7
在我的web.config文件中,我已经包含了以下内容:
<customErrors mode="On" />

现在不再显示黄色死机屏幕。 我原以为必须将 HandleError 属性包含在我的控制器方法或类本身中:

[HandleError]
public ActionResult About()
{
    throw new Exception("Just an exception");
    return View();
}

但它没有任何作用,和以下代码一样:

public ActionResult About()
{
    throw new Exception("Just an exception");
    return View();
}

无论哪种情况,都会显示自定义错误页面。那么HandleError属性是什么意思呢?
2个回答

14

如果MVC项目的App_Start文件夹下的FilterConfig.cs文件包含以下内容,则可能会发生这种情况:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandleErrorAttribute());
}

由于HandleError过滤器在应用程序启动时已注册,因此您无需为每个控制器操作添加此属性。


2
一个优秀而简洁的解释,同时回答了这个问题:“RegisterGlobalFilters的目的是什么?” - Dan Bechard

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接