首页 > 后端开发 > C++ > 如何将数据传递到 ASP.NET MVC 错误控制器以进行自定义错误处理?

如何将数据传递到 ASP.NET MVC 错误控制器以进行自定义错误处理?

Patricia Arquette
发布: 2025-01-14 10:21:46
原创
684 人浏览过

How Can I Pass Data to My ASP.NET MVC Error Controller for Custom Error Handling?

通过将数据传递到错误控制器来在 ASP.NET MVC 中进行有效的自定义错误处理

强大的错误处理对于 ASP.NET MVC 应用程序中的积极用户体验至关重要。 虽然 Application_Error 中的全局 Global.asax.cs 事件提供集中式错误管理,但有效地将相关数据传递到错误控制器需要采取策略性方法。

此示例利用查询字符串将错误信息传递给错误控制器,从而避免了多个错误路由的需要。 Application_Error 处理程序被修改为重定向到错误控制器中的适当操作,将错误消息嵌入到查询字符串中:

<code class="language-csharp">protected void Application_Error(object sender, EventArgs e)
{
    Exception exception = Server.GetLastError();
    Response.Clear();

    HttpException httpException = exception as HttpException;

    if (httpException != null)
    {
        string action;

        switch (httpException.GetHttpCode())
        {
            case 404:
                action = "NotFound";
                break;
            case 500:
                action = "ServerError";
                break;
            default:
                action = "GenericError";
                break;
        }

        Server.ClearError(); // Clear the server-side error

        Response.Redirect(String.Format("~/Error/{0}?message={1}", action, Server.UrlEncode(exception.Message)));
    }
}</code>
登录后复制

然后更新相应的错误控制器操作以从查询字符串中检索消息:

<code class="language-csharp">// GET: /Error/NotFound
public ActionResult NotFound()
{
    string message = Request.QueryString["message"];
    ViewBag.Message = message; // Or use a ViewModel
    return View();
}</code>
登录后复制

此方法通过利用现有路由简化了错误处理。 然而,考虑潜在的性能影响至关重要,尤其是在高流量环境中,因为重复使用可能会由于会话对象管理等因素而影响效率。 生产部署需要仔细考虑和优化。

以上是如何将数据传递到 ASP.NET MVC 错误控制器以进行自定义错误处理?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板