在MVC中自定义Http错误405的错误处理程序

本文关键字:错误 处理 程序 Http MVC 自定义 | 更新日期: 2023-09-27 18:14:51

我似乎不知道如何自定义处理此错误。我有一个这样定义的端点:

[HttpGet]public ActionResult Test(){…}

如果我尝试POST到这个端点,它抛出http 405错误,这是正确的。问题是我想提供一个自定义的错误页面,而不是IIS默认的。我已经尝试打破在application_error方法在全局。asax,但它从来没有得到调用,我已经尝试添加<customErrors />部分在web。配置,但无济于事。

有什么建议吗?

在MVC中自定义Http错误405的错误处理程序

您正在使用MVC3吗?如果是,请注意

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

在global.asax.

此过滤器将捕获控制器中抛出的任何异常,并使其成为500响应代码。然后,它将尝试找到一个名为"Error"的视图。注释掉这个,customErrors就会像你期望的那样工作。

另外,请仔细检查您正在使用的操作方法或控制器上的[HandleError]属性。