NetCore實現(xiàn)全局模型綁定異常信息統(tǒng)一處理(場景分析)
本文主要講解NetCore如何使用中間件捕獲模型綁定的異常信息
場景
在.NET Core 中請求中,如果參數(shù)的類型錯誤,我們在控制器中定義的方法是不會執(zhí)行的,當(dāng)我們需要捕獲模型綁定的異常信息時,可以使用ApiBehaviorOptions.。接下來通過一個小demo給大家講解一下用法
實現(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); //此時Http狀態(tài)碼返回的依舊是400,如果想返回正常的http狀態(tài)碼200,請使用下面一行代碼 //return new ObjectResult(errors); }; }); }
Program.cs中注入
services.ConfigureModelBindingExceptionHandling();
演示
Controller中添加TestExp1方法
[HttpGet("TestExp1")] public IActionResult TestExp1(int id) { _logger.LogInformation("測試"); return Ok(); }
在TestExp1中聲明的請求參數(shù)為int,所以我們在請求時使用字符串作為參數(shù)來請求,如下圖
請求的結(jié)果信息正好是我們封裝的信息,證明ApiBehaviorOptions能夠正常的捕獲到請求中參數(shù)類型錯誤的錯誤,
到此這篇關(guān)于NetCore實現(xiàn)全局模型綁定異常信息統(tǒng)一處理的文章就介紹到這了,更多相關(guān)NetCore全局異常處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中遍歷各類數(shù)據(jù)集合的方法總結(jié)
C#中遍歷各類數(shù)據(jù)集合的方法,這里自己做下總結(jié):枚舉類型、遍歷ArrayList(Queue、Stack)、Winform窗體中的控件、HashTable哈希表等等,具體祥看下文2013-05-05深入Lumisoft.NET組件與.NET API實現(xiàn)郵件發(fā)送功能的對比分析
本篇文章對Lumisoft.NET組件與.NET API實現(xiàn)郵件發(fā)送的功能兩者進(jìn)行了深入的對比分析。需要的朋友參考下2013-05-05一步步打造簡單的MVC電商網(wǎng)站BooksStore(3)
這篇文章主要和大家一起一步步打造一個簡單的MVC電商網(wǎng)站,MVC電商網(wǎng)站BooksStore第三篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04asp.net 長文章通過設(shè)定的行數(shù)分頁
長文章通過設(shè)定的行數(shù)來實現(xiàn)分頁的代碼。2009-12-12asp.net request.PathInfo實現(xiàn)的url重寫
最近對在開始研究url重寫,對重寫的原理以及重寫之后引起的性能問題是研究的重點,研究過程中發(fā)現(xiàn)了一種輕便的“url重寫方案”2009-04-04詳解免費(fèi)開源的DotNet任務(wù)調(diào)度組件Quartz.NET(.NET組件介紹之五)
本篇文章主要介紹免費(fèi)開源的DotNet任務(wù)調(diào)度組件Quartz.NET(.NET組件介紹之五),具有一定參考價值,有興趣的可以了解一下。2016-12-12Visual Studio 2017 community安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Visual Studio 2017 community安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09ASP.NET Core使用AutoMapper實現(xiàn)實體映射
本文詳細(xì)講解了ASP.NET Core使用AutoMapper實現(xiàn)實體映射的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03