У меня есть проект .NET Core. Я использую модель представления для привязки входящих данных из запроса.
В модели представления я делаю аннотацию данных [Required]
проверка. Если данные для этого конкретного поля пусты, выполнение оттуда возвращается без передачи контроллеру.
Мне нужно, чтобы выполнение перешло к контроллеру, чтобы изменить ответ с моими пользовательскими сообщениями наряду с ошибками состояния модели.
Моя модель выглядит как
[Required(ErrorMessage = ErrorConstants.required)]
[StringLength(5, MinimumLength = 5, ErrorMessage = ErrorConstants.invalid)]
[RegularExpression("^[0-9]+$", ErrorMessage = ErrorConstants.incorrectInputFormat)]
public string ZipCode { get; set; }
Пример метода действия моего контроллера. Пожалуйста, руководство.
if (viewModel == null)
{
_dictionary = _apiResponseService.SetResponse("false", ErrorConstants.nullOrIncorrect);
return Ok(_dictionary);
}
if(!ModelState.IsValid)
{
return Ok(_apiResponseService.SetResponse("false", ErrorConstants.invalidJson, ModelState.ToDictionary(kvp => kvp.Key.Replace("viewModel.", ""),
kvp => kvp.Value.Errors.Select(error =>
{
if (error.Exception == null)
{
return error.ErrorMessage;
}
else
{
return string.Format(ErrorConstants.required, kvp.Key.Split('.').Last());
}
}).FirstOrDefault())));
}