Я получаю ошибку состояния модели для свойства, для которого я не установил правило для использования плавной проверки - PullRequest
0 голосов
/ 30 мая 2020

Я хочу выполнить запрос на исправление, поскольку состояние модели недействительно, у меня есть ошибки проверки для свойства, для которого я установил правило, и свойства Id, для которого я не установил правило.

NB: я установил для SuppressModelStateInvalidFilter значение быть истинным в классе startUp.cs.

Это мои правила проверки для моей модели.

 public class UserForUpdateDtoValidator : AbstractValidator<UserForUpdateDTO>
{
    public UserForUpdateDtoValidator()
    {
        RuleFor(x => x.Phone)
            .NotEmpty().WithMessage("Enter a valid value")
            .Matches(@"^([0-9]{11})$").WithMessage("Enter a valid value");
        RuleFor(x => x.Gender)
            .NotEmpty().WithMessage("Enter a valid value")
            .Must((u, s) => s.ToLower() =="male" || s.ToLower() == "female")
            .WithMessage("Enter a valid value");
    }
}

Мое действие выглядит так

[HttpPatch]
    [Route("{id}")]
    [ProducesResponseType(typeof(SucessResponse<UserDTO>), 200)]
    public async Task<IActionResult> UpdateUser(UserForUpdateDTO model, Guid id)
    {
        try
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(new ErrorResponse<Dictionary<string, string[]>>
                {
                    success = false,
                    message = "User details update failed",
                    errors  = ModelState.Error()
                });
            }
        }
    }

Это мое сообщение об ошибке

{
  "success": false,
  "message": "User details update failed",
  "errors": {
     "id": [],
     "phone": [
        "Enter a valid value"
     ],
    "gender": [
        "Enter a valid value"
     ]
   }
}

Есть ли способ исключить поле id из ошибки, поскольку Я не устанавливал для этого правила.

NB. Если пол и телефон действительны, возвращается ответ 200 OK.

...