gpt4 book ai didi

asp.net-mvc - 如何为HandleErrorInfo模型提供对象?

转载 作者:行者123 更新时间:2023-12-04 00:19:17 25 4
gpt4 key购买 nike

我在写一个ASP.NET MVC应用程序,遇到以下问题。我想使用有关错误的详细信息(例如错误消息或导致错误的 Controller )制作自定义错误页面,但是我无法在 View 上为模型提供HandleErrorInfo对象。

首先,我将Web.config文件配置为处理自定义错误:

<customErrors mode="On" defaultRedirect="~/Error">
<error statusCode="404" redirect="~/Error/NotFound"/>
</customErrors>

然后,我创建了错误 Controller 来管理错误 View :
public class ErrorController : Controller
{
public ActionResult Index()
{
return View("Error");
}

public ViewResult NotFound()
{
Response.StatusCode = 404;
return View("NotFound");
}
}

在 View 上,我添加了模型类型:
@model System.Web.Mvc.HandleErrorInfo

但是该模型每次都为null,并且我不知道如何将带有错误详细信息的正确对象传递到 View 以及应在何处创建该对象。你能帮助我吗?甚至有可能这样做吗?

最佳答案

因此,您在这里处理两个不同的“层”。 <customErrors>是ASP.NET主要框架的一部分。然后HandleError是MVC框架的一部分。当您使用<customErrors>时,ASP.NET不知道如何将异常信息传递到 View 中,它只会将您加载/重定向到错误页面。

要使 View 生效,您需要将所有内容保留在MVC生态系统中。因此,您需要使用HandleErrorAttribute或varient。 You can see in the source code of the attribute尝试检测何时发生了未处理的异常,如果启用了自定义错误,则使用内部包含异常信息的ViewResult实例启动一个新的HandleErrorInfo

要注意的是,在默认的MVC项目中,HandleErrorAttribute用作App_Start/FilterConfig.cs文件内部的全局过滤器。

关于asp.net-mvc - 如何为HandleErrorInfo模型提供对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24932965/

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