gpt4 book ai didi

asp.net-mvc - 通过操作筛选器属性处理ASP.Net MVC自定义错误

转载 作者:行者123 更新时间:2023-12-03 07:51:38 25 4
gpt4 key购买 nike

我正在尝试通过操作过滤器属性实现自定义错误处理。

我的代码如下:

[HandleError (Order = 2)]
[HandleError (Order = 1, ExceptionType = typeof(NullReferenceException), View = "CustomError")]
public class ArticlesController : Controller
{

public object OhDearACrash()
{
throw new Exception("Oh Dear");
}

public ActionResult NullRefCrash()
{
throw new NullReferenceException();
}

public ActionResult ThrowNotImplemented()
{
throw new NotImplementedException();
}

OhDearACrash和ThrowNotImplemented都由[HandleError]拾取,后者通过位于“ View /共享”中的Error.aspx呈现错误消息。

例如,使用OhDearACrash:
Message = <%= ViewData.Model.Exception.Message %>

渲染
Message = Oh Dear

NullRefCrash由处理ExceptionType = typeof(NullReferenceException)的[HandeError]拾取。

当CustomError尝试使用渲染错误消息时
Message = <%= ViewData.Model.Exception.Message %>

ViewData.Model为null并引发异常
System.NullReferenceException was unhandled by user code
Message="Object reference not set to an instance of an object."

为了创建CustomError.aspx,我复制了Error.aspx并粘贴到新创建的Views/Error中,并重命名为CustomView.aspx。

由于Error.aspx和CustomError.aspx本质上是相同的,这是怎么发生的?

编辑:

我创建了一个仅包含上述内容的测试项目,并且CustomError.aspx View 工作得非常好-是否可以调试现有项目以查找问题?

最佳答案

我只是在ASP.NET MVC 1.0上尝试过此方法,但是我得到了正确的行为。

您是否有可能在其他地方运行另一个过滤器并以某种方式更改错误?

关于asp.net-mvc - 通过操作筛选器属性处理ASP.Net MVC自定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1981850/

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