(精華)2020年7月21日 ASP.NET Core 模型驗證過濾器
在.Net Core的時代中,框架會幫你自動驗證model的state,也就是ModelState。框架會為你自動註冊ModelStateInvalidFilter,這個會執行在OnActionExecuting事件裡面。
基於現有框架的程式碼編寫的話,所以我們不再需要在業務中耦合這樣的模型判斷程式碼,系統內部會檢查ModelState是否為Valid,如果為InValid會直接返回400 BadRequest,這樣就沒有必要執行後面的程式碼,提高效率。因此,操作方法中不再需要以下程式碼:
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
第一種方法:.Net Core 禁用模型驗證過濾器
services.Configure<ApiBehaviorOptions>(options => options.SuppressModelStateInvalidFilter = true);
SuppressModelStateInvalidFilter =true時,會關閉預設模型驗證過濾器。[ApiController] 預設自帶有400模型驗證,且優先順序比較高,如果需要自定義模型驗證,則需要先關閉預設的模型驗證。
第二種方法:自動替換預設模型驗證
//引數驗證
services.Configure<ApiBehaviorOptions>(options =>
{
options.InvalidModelStateResponseFactory = (context) =>
{
var error = context.ModelState.GetValidationSummary();
return new JsonResult(Result.FromError($"引數驗證不通過:{error.ToString()}", ResultCode.InvalidParams));
};
});
相關文章
- .net core 登入全域性驗證過濾器過濾器
- 理解ASP.NET Core - 過濾器(Filters)ASP.NET過濾器Filter
- Asp.net core 過濾器的簡單使用ASP.NET過濾器
- 【ASP.NET Core】MVC過濾器:執行流程ASP.NETMVC過濾器
- 【ASP.NET Core】MVC過濾器:常見用法ASP.NETMVC過濾器
- asp.net mvc中的使用者登入驗證過濾器ASP.NETMVC過濾器
- 【asp.net core】自定義模型繫結及其驗證ASP.NET模型
- ASP.NET Core - 實現自定義WebApi模型驗證ASP.NETWebAPI模型
- 理解ASP.NET Core - 模型繫結&驗證(Model Binding and Validation)ASP.NET模型
- ASP.Net MVC過濾器ASP.NETMVC過濾器
- Asp.Net Core中利用過濾器控制Nginx的快取時間ASP.NET過濾器Nginx快取
- ASP.NET Core如何禁用模型驗證(或者從模型狀態中移除某些屬性)?ASP.NET模型
- 在Asp.Net Core中使用ModelConvention實現全域性過濾器隔離ASP.NET過濾器
- .net core中的哪些過濾器過濾器
- Asp.Net Core webapi+net6 使用資源篩選器(過濾器) 做快取ASP.NETWebAPI過濾器快取
- ASP.NET MVC/Core表單提交後臺模型二級屬性驗證問題ASP.NETMVC模型
- ASP.Net Core 5.0 MVC中AOP思想的體現(五種過濾器)並結合專案案例說明過濾器的用法ASP.NETMVC過濾器
- 【asp.net core 系列】13 Identity 身份驗證入門ASP.NETIDE
- 【ASP.NET Core】使用最熟悉的Session驗證方案ASP.NETSession
- 直播軟體搭建,姓名,身份證input驗證過濾
- 學習ASP.NET Core(08)-過濾搜尋與分頁排序ASP.NET排序
- Shiro【授權過濾器、與ehcache整合、驗證碼、記住我】過濾器
- .net core中的哪些過濾器 (Authorization篇)過濾器
- 影片直播app原始碼,姓名,身份證input驗證過濾APP原始碼
- ASP.NET Core - 選項系統之選項驗證ASP.NET
- PHP 對資料進行驗證和過濾PHP
- ASP.NET Core之身份驗證和授權Cookie&SessionASP.NETCookieSession
- (精華)2020年9月17日 ASP.NET Core 中介軟體詳解ASP.NET
- (精華)2020年7月21日 ASP.NET Core 容器偽屬性注入ASP.NET
- ASP.NET Core MVC 之模型(Model)ASP.NETMVC模型
- [Hei.Captcha] Asp.Net Core 跨平臺驗證碼實現APTASP.NET
- 過濾器過濾器
- 用ASP.NET Core 2.1 建立規範的 REST API -- 翻頁/排序/過濾等ASP.NETRESTAPI排序
- asp.net core 3.1多種身份驗證方案,cookie和jwt混合認證授權ASP.NETCookieJWT
- (精華)2020年7月22日 ASP.NET Core Swagger的使用(NSwag工具版)ASP.NETSwagger
- (精華)2020年7月20日 ASP.NET Core serilog日誌框架的使用ASP.NET框架
- (精華)2020年7月1日 ASP.NET Core 使用Enablebuffering多次讀取bodyASP.NET
- (精華)2020年7月1日 ASP.NET Core Swagger的使用(Swashbuckle工具版)ASP.NETSwagger