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

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...