HandleErrorAttribute在MVC 5中不起作用
本文关键字:不起作用 MVC HandleErrorAttribute | 更新日期: 2023-09-27 17:56:16
我正在尝试使HandleErrorAttribut在ASP中工作。NET MVC 5,但它不工作
我在App_Start 下创建了FilterConfig.cs文件
namespace WebApplication12.App_Start
{
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
}
以及在Global.asax 中
namespace WebApplication12
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
}
}
}
和web.config 中
<system.web>
<customErrors mode="On" defaultRedirect="~/Views/Errorrr.cshtml">
</customErrors>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
仍然会出现错误,无法处理异常
[HandleError]
public ActionResult Index()
{
throw new Exception("New Error");
}
谢谢你,
Lucia
默认情况下,HandleError
属性将显示位于~/Views/Shared
文件夹中的Error
视图,但如果要显示特定视图,可以设置属性的view属性。
[HandleError(View = "Error")]
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
int u = Convert.ToInt32("");// Error line
return View();
}
看看这是否有帮助。
如果是Mvc5,请确保使用"using System.Web.Mvc"而不是"using Web.Http.Filters",因为后者用于WebApi。还可以发布HandleErrorAttribute类的代码。