(精華)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));
};
});
相關文章
- ASP.NET Core 過濾器ASP.NET過濾器
- .net core 登入全域性驗證過濾器過濾器
- asp.net core MVC 過濾器之ActionFilter過濾器(二)ASP.NETMVC過濾器Filter
- 理解ASP.NET Core - 過濾器(Filters)ASP.NET過濾器Filter
- 【ASP.NET Core】MVC過濾器:執行流程ASP.NETMVC過濾器
- 【ASP.NET Core】MVC過濾器:常見用法ASP.NETMVC過濾器
- Asp.net core 過濾器的簡單使用ASP.NET過濾器
- ASP.NET Core - 實現自定義WebApi模型驗證ASP.NETWebAPI模型
- 【asp.net core】自定義模型繫結及其驗證ASP.NET模型
- asp.net mvc中的使用者登入驗證過濾器ASP.NETMVC過濾器
- ASP.NET MVC 5改進了基於過濾器的身份驗證ASP.NETMVC過濾器
- 理解ASP.NET Core - 模型繫結&驗證(Model Binding and Validation)ASP.NET模型
- ASP.Net MVC過濾器ASP.NETMVC過濾器
- (精華)2020年7月21日 ASP.NET Core 容器偽屬性注入ASP.NET
- (精華)2020年9月17日 ASP.NET Core 中介軟體詳解ASP.NET
- Asp.Net Core中利用過濾器控制Nginx的快取時間ASP.NET過濾器Nginx快取
- .net core中的哪些過濾器過濾器
- ASP.NET MVC動作過濾器ASP.NETMVC過濾器
- (精華)2020年7月1日 ASP.NET Core 使用Enablebuffering多次讀取bodyASP.NET
- Asp.Net Core webapi+net6 使用資源篩選器(過濾器) 做快取ASP.NETWebAPI過濾器快取
- 直播軟體搭建,姓名,身份證input驗證過濾
- ASP.NET MVC/Core表單提交後臺模型二級屬性驗證問題ASP.NETMVC模型
- (精華)2020年7月1日 ASP.NET Core Swagger的使用(Swashbuckle工具版)ASP.NETSwagger
- (精華)2020年7月20日 ASP.NET Core serilog日誌框架的使用ASP.NET框架
- .net core中的哪些過濾器 (Authorization篇)過濾器
- ASP.Net Core 5.0 MVC中AOP思想的體現(五種過濾器)並結合專案案例說明過濾器的用法ASP.NETMVC過濾器
- 【ASP.NET Core】使用最熟悉的Session驗證方案ASP.NETSession
- 在Asp.Net Core中使用ModelConvention實現全域性過濾器隔離ASP.NET過濾器
- 影片直播app原始碼,姓名,身份證input驗證過濾APP原始碼
- ASP.NET MVC學習之模型驗證篇ASP.NETMVC模型
- (精華)2020年7月1日 ASP.NET Core 解決跨域問題(手寫版)ASP.NET跨域
- (精華)2020年7月22日 ASP.NET Core Swagger的使用(NSwag工具版)ASP.NETSwagger
- (精華)2020年7月20日 ASP.NET Core log4.net日誌框架的使用ASP.NET框架
- Shiro【授權過濾器、與ehcache整合、驗證碼、記住我】過濾器
- ASP.NET MVC筆記 之 Action 過濾器ASP.NETMVC筆記過濾器
- 學習ASP.NET Core(08)-過濾搜尋與分頁排序ASP.NET排序
- PHP 對資料進行驗證和過濾PHP
- 【asp.net core 系列】13 Identity 身份驗證入門ASP.NETIDE