gpt4 book ai didi

asp.net-mvc-3 - 自定义HandleErrorAttribute的错误不起作用

转载 作者:行者123 更新时间:2023-12-02 07:10:18 24 4
gpt4 key购买 nike

我读过许多文章和几篇文章(包括stackoverflow中的文章),但不知道我在做什么错。

这是我的代码:

Global.asax.cs

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}

ErrorControler.cs
public class ErrorController : Controller
{
public ActionResult Error404()
{
return View();
}

public ActionResult Error500()
{
return View();
}
}

Web.config
<customErrors mode="On" defaultRedirect="~/Error/Error500">
<error statusCode="404" redirect="~/Error/Error404"/>
</customErrors>

MyController.cs
public ActionResult Index()
{
using (var db = new DataContext())
{
int a = 2, b = 0;
var r = a / b;
return View(r);
}
}

Error500.cshtml
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Erro";
}

<h2>@ViewBag.Title</h2>
<div id="error-info">
<p>Ocorreu um erro inexperado na página <a class="error-url" href="@Response["aspxerrorpath"]" title="Origem do erro">@Response["aspxerrorpath"]</a></p>
<p>Se o erro persistir, por-favor, entre em contato com os administradores do site.</p>
<div class="error-details">
<p>@Model.Exception.Message</p>
</div>
</div>

当我尝试访问路径 /MyController时,出现以下消息:

Server Error in '/' Application.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

Requested URL: /Error/Error500



我希望在任何 Controller 上发生错误(如果未在web.config中通知http状态代码)时发生这种情况,它将重定向到默认 View Error500
例如,在 this article中,它处理DbException错误,但希望处理任何类型的错误。

404类型的错误(找不到页面)可以正常工作。用户被重定向到页面 Error404.cshtml

最佳答案

如果您希望这种情况发生,请从Global.asax中删除/注释以下行:

filters.Add(new HandleErrorAttribute());

基本上,您必须选择是要ASP.NET处理错误(web.config中的 <customErrors>部分)还是ASp.NET MVC(全局 HandleErrorAttribute操作筛选器),顺便要求您打开Web中的自定义错误.config)

或 checkout handling errors in ASP.NET MVC的替代方法(使用这种方法,您仍然必须删除 Global.asax中显示的行)。

关于asp.net-mvc-3 - 自定义HandleErrorAttribute的错误不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6821903/

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