【发布时间】:2013-11-12 23:02:12
【问题描述】:
所以基本上我有一个自定义授权属性,在某些时候它会引发异常。我想捕获异常并将消息显示给用户。
这是控制器
[HandleError]
public class TestController : BaseController
{
[CustomAuthorize("someperm, someperm2")]
public ActionResult GamblerUser()
{
return View();
}
}
这是FilterConfig中的代码
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
这是 global.asax.cs 中的代码
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
和 web.config
<customErrors defaultRedirect="~/Shared/Error" mode="On">
</customErrors>
最后是视图本身
@model HandleErrorInfo
@{
ViewBag.Title = "Error";
}
<h2>Sorry Error Occured</h2> <br />
<h2>@Model.Exception.Message</h2>
这是我在异常发生时收到的消息。
运行时错误 描述:处理您的请求时发生异常。此外,在执行第一个异常的自定义错误页面时发生了另一个异常。请求已终止。
我知道我遗漏了一些非常基本的东西,但这只是让我头疼。 我看了很多例子,我就是无法让这个东西正常工作。
【问题讨论】:
-
在你的控制器中覆盖 OnException,你能在那里打断点吗?呈现错误看起来不是问题。
-
上下文中的异常是您所期望的吗?
-
啊,没关系,它在错误页面中... ViewBag.Title = "Error" 是问题所在。
-
我完全删除了该声明,但它仍然给我同样的错误:/.
-
哦。我的错。就是这样,谢谢人问题解决了
标签: c# asp.net-mvc-4 exception-handling