簡體   English   中英

Model state 馬上回歸.Net Core 5

[英]Model state returns right away .Net Core 5

我有一個自定義驗證屬性

public class IsUsernameAcceptableAttr:ValidationAttribute
{
    
    protected override ValidationResult IsValid(object username, ValidationContext validationContext)
    {
        var _username = username.ToString();
        if (_username.Length<4)
            return new ValidationResult("Username must be at least 4 characters.");
       
        return ValidationResult.Success;

    }
}

在我的 DTO class 我有

 public class UserAccountInformationDTO
    {
        [IsUsernameAcceptableAttr]
        public string Username { get; set; }


    }

在行動方法我得到

public IActionResult UpdateAccountInformationstring(UserAccountInformationDTO accountInfo)
    {
        var ms = ModelState.IsValid;
        return Ok();
        
    }

問題是當 model state 遇到錯誤時,它會以 JSON 響應的形式返回errors響應。 我從來沒有在 controller 中做任何事情,或者將響應更改為我想要的格式。 我還可以做些什么?

您需要指定參數的來源

https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-5.0#binding-source-parameter-inference

更新:

將以下代碼添加到您的啟動 ConfigureServices:

services.Configure<ApiBehaviorOptions>(apiBehaviorOptions => {
    apiBehaviorOptions.SuppressModelStateInvalidFilter = true;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM