HandleError属性没有任何效果

时间:2013-07-29 06:36:42

标签: asp.net-mvc asp.net-mvc-3 handleerror

在我的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 个答案:

答案 0 :(得分:14)

如果在MVC项目的App_Start文件夹下的FilterConfig.cs包含:

,则会发生这种情况。
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandleErrorAttribute());
}

由于在应用程序启动时注册了HandleError过滤器,因此您不必使用此属性修饰每个控制器操作。

答案 1 :(得分:0)

请参阅Scott Gu的以下文章。它包含有关HandleError属性的所有信息 http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx