首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.Net MVC - 如何在JSON操作中处理异常(返回JSON错误信息),还发布过滤器的异常?

在ASP.Net MVC中,处理JSON操作中的异常并返回JSON错误信息可以通过以下方法实现:

  1. 创建一个自定义异常处理属性(Attribute),用于捕获和处理控制器中的异常。
代码语言:csharp
复制
public class HandleJsonExceptionAttribute : FilterAttribute, IExceptionFilter
{
    public void OnException(ExceptionContext context)
    {
        if (context.HttpContext.Request.IsAjaxRequest())
        {
            context.Result = new JsonResult(new
            {
                success = false,
                message = context.Exception.Message
            });
            context.ExceptionHandled = true;
        }
    }
}
  1. 在控制器中使用自定义异常处理属性。
代码语言:csharp
复制
[HandleJsonException]
public class MyController : Controller
{
    // 控制器中的操作方法
}
  1. 在需要处理异常的操作方法中,使用try-catch语句捕获异常,并在catch块中处理异常。
代码语言:csharp
复制
public ActionResult MyAction()
{
    try
    {
        // 执行可能抛出异常的代码
    }
    catch (Exception ex)
    {
        // 处理异常
        return Json(new
        {
            success = false,
            message = ex.Message
        });
    }
}

通过以上方法,可以在ASP.Net MVC中处理JSON操作中的异常并返回JSON错误信息。同时,可以使用ASP.Net MVC提供的过滤器(Filter)来处理异常,例如HandleErrorAttribute过滤器,可以在全局范围内处理异常并返回错误视图。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理 七天学会ASP.NET MVC...实验29——异常处理—显示自定义错误页面 关于实验29 理解实验29限制 实验30—异常处理—日志异常 关于实验30 理解RouteTable 理解Asp.net MVC 请求周期 实验31—实现用户友好...worker 线程初始化异步操作,并返回到线程池服务其他请求。异步操作可使用CLR 线程来继续执行。 存在问题就是,CLR 线程无法返回响应,一旦它完成了异步操作,它会通知Asp.net。...激活异常过滤器 当自定义异常被捕获时,异常过滤器变为可用。为了能够获得自定义异常,打开Web.config文件,在System.Web.Section下方添加自定义错误信息。...,做第一件事情就是通知MVC 引擎,手动处理异常,因此不需要执行默认操作,不会显示默认错误页面。

3.9K100
  • .net core web api + Autofac + EFCore 个人实践

    其一,修改ConfigureServices返回类型:void => IServiceProvider ;其二,红色部分,这个懒得说太细,太费事儿,总之跟.NET其他框架下集成大同小异,没杀特别。...这里允许http://localhost:65062(我前端站点)、任意标头、任意请求方式 6、异常处理   按照个人以前惯例,异常处理采用异常过滤器,这里也不意外, 过滤器定义如下: public...", null); } context.Result = result; } }   简言之就是,判断操作方法抛出是什么异常...,如果是由我们业务代码主动引发业务级别异常,也就是类型为自定义BusinessException,则直接设置相应json结果状态码及 错误信息为我们引发异常时定义状态码及错误信息;如果是框架或数据库操作失败引发...,被动式异常,这种错误信息不应该暴露给前端,而且,这种服务器内部处理出错,理应统一设置状态码为500,还需要记录异常堆栈,如上else分支所做。

    1.5K40

    ASP.NET Web API 2错误处理

    ---- HttpResponseException 通常在WebAPIController抛出处理异常,会以500形式返回到客户端。...而HttpResponseException会返回我们指定状态码,返回501: public HttpResponseMessage Exception() { //直接在Action抛出HttpResponseException...类型对象(ASP.NET WebAPIAction返回值最终都会被转换为HttpResponseMessage类型对象),该对象包含一个HttpError类型实例。...过滤器可分为三个级别: Action Controller Global 注意:ASP.NET MVCASP.NET WebAPI异常过滤器不可混用 ExceptionHandler 以下情形异常...,过滤器是无法捕获到: Controller构造函数抛出异常 消息处理抛出异常 路由过程中出现异常 其它过滤器抛出异常 序列化返回内容时抛出异常 解决方案如下

    1.8K30

    MVC 3.0 新特性 摘要

    控制器改进 全局 Action 过滤器 有的时候你希望能够在在一个 Action 方法执行之前或者执行之后执行一些处理逻辑,在 ASP.NET MVC2 ,提供了 Action 过滤器,允许对特定控制器...Action 方法进行处理,实际上,有时候你希望对所有的 Action 都进行类似的处理MVC3 允许你将过滤器加入到 GlobalFilters 集合来创建全局过滤器,详细介绍,参考下列资源...新 ActionResult 类型 下面的 ActionResult 类型在 MVC3 是新增或者被扩展。 . 向客户端返回 404 HTTP 状态....,参考 How to: Implement Remote Validation in ASP.NET MVC JSON 绑定支持 ASP.NET MVC3 包含内置 JSON 绑定支持,允许 Action...在请求验证粒度控制 ASP.NET MVC 内建了请求验证机制来自动帮助处理类似跨站攻击和 HTML 注入等等。

    2.6K10

    ASP.NET MVC编程——控制器

    每一个请求都会经过控制器处理,控制器每个方法被称为控制器操作,它处理具体请求。 1操作输入参数 控制器操作输入参数可以是内置类型也可以是自定义类型。...9)HandleErrorAttribute public class HandleErrorAttribute : FilterAttribute, IExceptionFilter 处理操作方法引发异常...从线程池获得线程处理异步请求,异步调用完后,该线程回到线程池以便可以处理其他请求,同时通知ASP.NET重新抓取一个线程(不一定是处理异步请求线程)来完成具体异步操作(输出数据等)。...使用异步控制器目的: 异步控制器操作也要等待任务直至处理完,所以处理速度不比同步方法快,其主要作用是高效地利用服务器资源。...Scott Allen,孙远帅/邹权译  ASP.NET MVC4 高级编程(第四版) 3.黄保翕,ASP.NET MVC4开发指南 4.蒋金楠,ASP.NET MVC4框架揭秘 5.https://www.asp.net

    2.2K90

    快速入门系列--WebAPI--04在老版本MVC4下调整

    此外,这个dataType='json'最终反应到http请求体为Accept: application/json, 这个对于你使用过滤器拦截并新建httpMessageResponseHttpContent...过滤请求 过去我们常常将一些验证逻辑和异常处理逻辑放在Controller,极大增加了Controller复杂性,完全可以通过面向切面(AOP)来处理,在.NET 4.0提供相关基类和接口如下所示...认证过滤器先于操作过滤器运行,应用场景为验证客户身份,例如去Cookie或HttpHead获取相关验证信息 IActionFilter ActionFilterAttribute 操作过滤器在参数绑定时发生...操作过滤器目标时允许开发人员增加和替换操作输入值和输出结果。...就会调用异常过滤器,可以检查异常,并采取一些操作,例如记录日志、提供新响应对象来处理异常等 Tip: 在MVC4,推荐使用同步基类,在以后版本推荐使用异步接口对应用程序进行扩展。

    1.1K60

    ASP.NET Core 2.0 建立规范 REST API -- 预备知识

    ASP.NET Core允许我们按约定为指定环境建立单独启动配置....过滤器和中间件区别:中间件是应用程序级别的,它可以处理每个发送过来请求;而过滤器是针对MVC,它只会处理发往MVC请求。...ASP.NET Core MVC过滤器分为5类: 授权过滤器,它是第一个运行,它作用就是判断HTTP Context用户是否拥有当前请求权限,如果用户没有权限,那么它就会“短路”管道。...Action过滤器,它在Action方法调用之前和之后立即执行,它可以操作传进Action参数和返回结果。...异常过滤器,针对在写入响应Body之前发生处理异常,它可以应用全局策略, 结果过滤器,它可以在每个Action结果执行之前和之后运行代码,但也只是在Action方法无错误成功完成后才可以执行。

    1.7K00

    快速展示原型之Minimal API开发

    请求和响应处理: 使用方法参数来获取请求数据,路由参数、查询字符串参数和请求体参数。...然后,我们可以对数据进行处理,并生成相应结果。最后,我们使用 `Results.Ok()` 方法将结果作为 JSON 响应返回。 ​...如果模型验证失败,将返回包含验证错误信息 BadRequest 响应;如果模型验证成功,将返回包含有效 `Person` 对象 Ok 响应。 ​...在应用程序主函数,我们注册了自定义异常处理中间件,并在根路径上抛出一个异常,以模拟应用程序异常情况。当访问根路径时,异常处理中间件将捕获并处理异常,并返回相应错误响应。 ​...通过这种方式,你可以自定义异常处理中间件来捕获和处理应用程序异常,并生成适当响应。 ​

    38910

    ASP.NET Core 2.0 建立规范 REST API -- 预备知识 + 项目准备

    过滤器和中间件区别:中间件是应用程序级别的,它可以处理每个发送过来请求;而过滤器是针对MVC,它只会处理发往MVC请求。...ASP.NET Core MVC过滤器分为5类: 授权过滤器,它是第一个运行,它作用就是判断HTTP Context用户是否拥有当前请求权限,如果用户没有权限,那么它就会“短路”管道。...异常过滤器,针对在写入响应Body之前发生处理异常,它可以应用全局策略, 结果过滤器,它可以在每个Action结果执行之前和之后运行代码,但也只是在Action方法无错误成功完成后才可以执行。...Error = 4, 用于记录无法处理错误和异常, 这些信息意味着当前活动或操作发生了错误, 但不是应用程序级别的错误....处理异常 ASP.NET Core 未开发人员提供了一个异常信息页面, 它是运行时生成, 它封装了异常各种信息, 例如Stack trace.

    2.7K72

    C# .NET面试系列七:ASP.NET Core

    ASP.NET Core Filter 如何支持依赖注入?在ASP.NET Core,Filter是一种用于在请求处理管道执行某些操作组件。Filter可以用于处理请求前后、异常处理等场景。...2、MVC异常过滤器MVC,可以使用异常过滤器处理Controller和Action异常。你可以在Controller或Action上应用ExceptionHandler特性。...MVC,可以使用全局过滤器处理所有Controller和Action异常。...例如,在开发环境,你可以使用 UseDeveloperExceptionPage 中间件来显示详细错误信息,而在生产环境,可以使用 UseExceptionHandler 中间件来处理异常并显示适当错误页面...7、控制器文件 (Controllers)Controllers 文件夹包含 MVC 框架控制器文件,用于处理 HTTP 请求并返回相应响应。

    29810

    【5min+】AspNet Core全局异常处理

    return Task.CompletedTask; } } 上面咱们新建了一个自定义异常过滤器,代码很简单,就是报错了之后依旧让Http返回状态码为200结果。...并且将错误信息返回到客户端。...这对于某些不致命意外操作来说,有点杀鸡用牛刀感觉,对于前端用户来说也不是很友好(明明输错了一个字符,就直接被告知网站崩溃,并且出现乔殿下)。 而咱们捕获了异常,进行特殊处理之后就显得很友好了。...IExceptionFilter 作为MVC中间件之间内容,它需要MVC在发现错误之后将错误信息提交给它处理,因此它错误处理范围仅限于MVC中间件。...非也,假如您想在MVC发生异常时快速捕获和处理,使用过滤器其实是您不错得选择,如果您仅仅关心控制器之间异常,那么过滤器也是很好选择。

    1.8K20

    ASP.NET Core 错误处理(Handle Errors)

    异常处理程序页 除了使用lambda外,我们还可以指定一个路径,指向一个备用管道进行异常处理,这个备用管道对于MVC来说,一般是ControllerAction,例如MVC模板默认/Home/Error...使用过滤器进行错误处理 除了错误处理中间件外,ASP.NET Core 还提供了异常过滤器,用于错误处理。...、Action Filter和Action抛出处理异常 其他地方抛出异常不会捕获 本节仅介绍异常过滤器,有关过滤器详细内容,后续文章将会介绍 先来看一下这两个接口: // 仅具有标记作用,标记其为...或Action配置不同异常过滤器 异常过滤器非常适合用于捕获并处理Action异常。...在我们应用,可以同时使用错误处理中间件和异常过滤器,只有充分发挥它们各自优势,才能处理好程序错误。

    2.1K20

    ASP.NET MVC编程——错误处理与日记

    ASP.NET MVC错误处理应考虑到这几个方面:模型绑定期间发生错误,未能路由到指定操作,针对控制器错误处理。...针对模型绑定或路由等过程抛出异常我们只能使用全局错误处理策略。...4.3策略 一种常用拦截错误信息、记录错误日志与显示自定义错误页策略为: 1)首先配置节,注意务必设置defaultRedirect;并且定义错误控制器及相应操作和视图...3)在Global.asax添加Application_Error方法拦截意想不到异常并记录异常。...Scott Allen,孙远帅/邹权译  ASP.NET MVC4 高级编程(第四版) 3.黄保翕,ASP.NET MVC4开发指南 4.蒋金楠,ASP.NET MVC4框架揭秘 5.https://www.asp.net

    1.5K60
    领券