【问题标题】:customerError handling asp.net mvc4客户错误处理asp.net mvc4
【发布时间】: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


【解决方案1】:

ViewBag 为空。我会在 html 中使用静态标题或找到解决方法,例如 this

【讨论】:

    猜你喜欢
    • 2015-12-16
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多