asp.net-mvc - 基于属性的Ajax请求错误处理? (值得吗?)

标签 asp.net-mvc attributes error-handling

当我将Ajax.BeginForm发布到返回部分 View 的操作中时,我在ViewData项目中发送错误信息。

当前,为了处理所有错误,我必须将所有方法包装在try catch语句中。

[HttpPost, ValidateAntiForgeryToken]
public virtual ActionResult Save(int id, FormCollection form)
{
    MyModel model;
    try
    {
        ...do stuff...

    }
    catch(Exception ex)
    {
        ...log...
        ViewData["ResultInfo"] = new ResultInfo(false, Resource.SAVE_NOT_SAVED, someErrorMessage);
    }

    return PartialView("Folder/SomeView", model);
}

我想使用自定义的HandleError属性来执行此操作,但我意识到必须等待很多陷阱。有没有人尝试过并想分享他们的经验?

编辑:
我最终在 Controller 基类中进行了错误处理。

该ErrorHandlingController有2种方法; RegisterErrorHandler和RegisterModel。如果在基类OnException中发现错误时发现错误处理程序已注册,我只需添加ResultInfo并将错误标记为已处理,并使用我在RegisterErrorHandler中设置的 View 和错误标题。

这样,就很容易将模型带到错误处理程序,并且自然可以直接使用资源,因为错误处理程序被注册为方法中的第一行,而不是方法外的属性。

最佳答案

关于asp.net-mvc - 基于属性的Ajax请求错误处理? (值得吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5894154/

相关文章:

javascript - 在创建不显示错误消息的部分 View 的集合上使用 FluentValidation

c# - Task.Run 在 ASP .NET MVC Web 应用程序中被认为是不好的做法吗?

c# - C# expression-bodied 成员的 method 属性

python - Python 类继承的奇怪问题

javascript - 从 PHP 使用 JavaScript 更改 HTML 属性

facebook - HTTP/1.0 400错误请求

.net - 如何从 ASP.NET Core 引用 .NET 框架

rust - 是否可以在作用域中使用 '?' 运算符?

vba - 将vba中的 "#N/A"值检查到一个范围内

asp.net-mvc - MVC routes.MapRoute 名称属性