最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

NetCore實(shí)現(xiàn)全局模型綁定異常信息統(tǒng)一處理(場(chǎng)景分析)

 更新時(shí)間:2021年12月28日 08:31:51   作者:初夏的陽(yáng)光丶  
本文主要講解NetCore如何使用中間件捕獲模型綁定的異常信息,對(duì)NetCore實(shí)現(xiàn)全局模型綁定異常信息統(tǒng)一處理場(chǎng)景分析及實(shí)現(xiàn)代碼感興趣的朋友一起看看吧

本文主要講解NetCore如何使用中間件捕獲模型綁定的異常信息

場(chǎng)景

在.NET Core 中請(qǐng)求中,如果參數(shù)的類(lèi)型錯(cuò)誤,我們?cè)诳刂破髦卸x的方法是不會(huì)執(zhí)行的,當(dāng)我們需要捕獲模型綁定的異常信息時(shí),可以使用ApiBehaviorOptions.。接下來(lái)通過(guò)一個(gè)小demo給大家講解一下用法

實(shí)現(xiàn)代碼

 public static void ConfigureModelBindingExceptionHandling(this IServiceCollection services)
        {
            services.Configure<ApiBehaviorOptions>(options =>
            {
                options.InvalidModelStateResponseFactory = actionContext =>
                {
                    var errors = actionContext.ModelState?
                        .Where(e => e.Value.Errors.Count > 0)
                        ?.Select(e => new  object //api返回的Model信息
                        {
                            ErrorCode = -9998,
                            ErrorMessage=e.Value.Errors.First().ErrorMessage,
                            Status=false,
                            Data=null
                        })?.FirstOrDefault();
                    return new BadRequestObjectResult(errors);
                    //此時(shí)Http狀態(tài)碼返回的依舊是400,如果想返回正常的http狀態(tài)碼200,請(qǐng)使用下面一行代碼
                    //return new  ObjectResult(errors);
                };
            });
        }

Program.cs中注入

services.ConfigureModelBindingExceptionHandling();

演示

Controller中添加TestExp1方法

[HttpGet("TestExp1")]
        public IActionResult TestExp1(int id)
        {
            _logger.LogInformation("測(cè)試");
            return Ok();
        }

在TestExp1中聲明的請(qǐng)求參數(shù)為int,所以我們?cè)谡?qǐng)求時(shí)使用字符串作為參數(shù)來(lái)請(qǐng)求,如下圖

請(qǐng)求的結(jié)果信息正好是我們封裝的信息,證明ApiBehaviorOptions能夠正常的捕獲到請(qǐng)求中參數(shù)類(lèi)型錯(cuò)誤的錯(cuò)誤,

到此這篇關(guān)于NetCore實(shí)現(xiàn)全局模型綁定異常信息統(tǒng)一處理的文章就介紹到這了,更多相關(guān)NetCore全局異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

分宜县| 富锦市| 东乡族自治县| 晋城| 织金县| 平昌县| 石阡县| 富锦市| 灵川县| 通道| 延津县| 凉城县| 左贡县| 大连市| 沙坪坝区| 湖州市| 九寨沟县| 女性| 辽源市| 株洲市| 望谟县| 乃东县| 石渠县| 聂荣县| 崇文区| 额济纳旗| SHOW| 阿合奇县| 汾西县| 余庆县| 遂平县| 琼海市| 云龙县| 库车县| 嘉峪关市| 湄潭县| 新野县| 象山县| 肇东市| 鄂伦春自治旗| 黄浦区|