Я хочу выполнить запрос на исправление, поскольку состояние модели недействительно, у меня есть ошибки проверки для свойства, для которого я установил правило, и свойства 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.