zoukankan      html  css  js  c++  java
  • WebApi的输出结果重写 OnActionExecuted

            public override void OnActionExecuted(ActionExecutedContext context)
            {
    
    
                if (context.Exception != null && context.ExceptionHandled == false)
                {
    
                    context.ExceptionHandled = true;
    
                    int errcode = 500;
                    if (context.Exception is ErrorCodeException)
                    {
                        errcode = (int)(context.Exception as ErrorCodeException).ErrorCode;
                    }
                    else
                    {
                        //其他异常,需要记日志
                        try
                        {
                            ILogger logger = Global.ServiceProvider.GetService<ILogger<BaseController>>();
                            logger.LogError(context.Exception, "");
                        }
                        catch
                        {
                        }
                       
                    }
    
                    context.Result = new JsonResult(new
                    {
                        code = errcode,
                        msg = context.Exception.Message
                    });
                }
                else if (context.Exception == null && context.Result != null && context.Result is BadRequestObjectResult)
                {
    
                    var objResult = (BadRequestObjectResult)context.Result;
    
                    if (objResult.Value is ValidationProblemDetails details)
                    {
                        context.Result = new JsonResult(new
                        {
                            code = 400,
                            msg = details.Errors.ToJsonString()
                        });
                    }
                    else
                    {
                        context.Result = new JsonResult(new
                        {
                            code = 400,
                            msg = "server error"
                        });
                    }
                }
                else if (context.Exception == null && context.Result != null && context.Result is ObjectResult)
                {
    
                    var objResult = (ObjectResult)context.Result;
    
                    context.Result = new JsonResult(new
                    {
                        code = 200,
                        data = objResult.Value
                    });
                }
                else if (context.Exception == null && context.Result is EmptyResult)
                {
                    context.Result = new JsonResult(new
                    {
                        code = 200
                    });
                }
    
                base.OnActionExecuted(context);
            }
        }
  • 相关阅读:
    函数模板
    可以接收数量不定的参数的函数
    Poco库的学习
    分割字符串,字符串去除空格
    初始化时添加click方法
    【Mybatis】传Map与传String
    jsp全局变量
    【oracle】Oracle中字符串连接的实现方法【转】
    斜杠(右斜杠)【/】 与 反斜杠(右斜杠)【】
    【Java】@ResponseBody 返回JsonObject
  • 原文地址:https://www.cnblogs.com/IWings/p/13522864.html
Copyright © 2011-2022 走看看