gpt4 book ai didi

asp.net-mvc - 处理错误属性不起作用

转载 作者:行者123 更新时间:2023-12-04 13:02:25 24 4
gpt4 key购买 nike

我已经在 VS10 中启动了一个 MVC 3 模板项目并修改了 global.asax.cs 如下:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute { ExceptionType = typeof(DivideByZeroException), View = "DivideByZeroException", Order = 1 });
filters.Add(new HandleErrorAttribute { View = "AllOtherExceptions", Order = 2 });
}

到 web.config 我添加:
<customErrors mode="On">

然后创建了相应的 View ,最后为其中一个 Action 添加了一个 DivideByZero-throw。

结果:呈现 View AllOtherExceptions。

最佳答案

尽管我讨厌不同意达林所说的任何话,但他在这一点上是错误的。

设置属性没有问题(这是你应该做的方式)。

您的原始代码没有按预期工作的唯一原因是您拥有 Order设置错了。

MSDN :

The OnActionExecuting(ActionExecutingContext), OnResultExecuting(ResultExecutingContext), and OnAuthorization(AuthorizationContext) filters run in forward order. The OnActionExecuted(ActionExecutedContext), OnResultExecuting(ResultExecutingContext), and OnException(ExceptionContext) filters run in reverse order.



所以你的通用 AllOtherExceptions过滤器需要是最低的 Order数,不是最高的。

希望对下次有帮助。

关于asp.net-mvc - 处理错误属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8984289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com