微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – ASP.NET MVC – 全局错误处理方法?

我想知道什么是全局错误的最佳实现(不一定是错误,也可以是成功消息)处理程序会是什么?让我通过一个例子为你分解:

>用户尝试删除记录
>删除失败并记录错误
>用户重定向到另一个页面
>显示用户错误消息(使用HtmlHelper或其他东西,不要让它成为特定的错误页面)

我只是好奇你们的想法.我一直在考虑TempData,ViewData和Session,但它们各有利弊.

TIA!

更新:

我将举例说明我的意思,也许我不够清楚.
这是在用户删除记录时添加消息的方法示例.
如果用户成功,用户重定向到另一个页面

public ActionResult DeleteRecord(Record recordToDelete)
{
    // If user succeeds deleting the record
    if (_service.DeleteRecord(recordToDelete) 
    {
        // Add success message
        MessageHandler.AddMessage(Status.SUCCESS,"A message to user");

        // And redirect to list view
        return RedirectToAction("RecordsList");
    }
    else 
    {
        // Else return records details view
        return View("RecordDetails",recordToDelete);
    }
}

在“RecordsList”视图中,在HtmlHelper中显示所有消息(包括错误和成功消息)会很酷.

<%= Html.RenderAllMessages %>

这可以通过多种方式实现,我只是好奇你们会做什么.

更新2:

我创建了一个自定义错误(消息)处理程序.如果向下滚动,可以看到代码.

解决方法

我对这些步骤感到困惑:

>删除失败并记录错误
>用户重定向到另一个页面

发生错误时,为什么要重定向用户?这没有任何意义,除非我误解了一些东西.

通常,我遵循以下准则:

>表单提交出错(例如HTTP POST):检查ModelState.IsValid并返回相同的View并使用@ Html.ValidationSummary()呈现错误> AJAX调用出错:返回JsonResult(如@Tomas所说),并使用基本的客户端脚本来检查JSON并显示结果>域/业务出错:抛出自定义异常并让控制器捕获它们并如上所述添加到ModelState

原文地址:https://www.jb51.cc/csharp/99972.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐