Modelstate возвращает Isvalid = false для действительного объекта - PullRequest
0 голосов
/ 26 января 2020

Я использую asp core 3.1 страниц бритвы. На одной из моих страниц я размещаю сообщение JSON на страницах бритвы. Обвязка модели работает отлично. У меня проблема, когда я вызываю ModelState.IsValid, всегда получая значение false, даже если JSON является действительным.

Класс модели

 public class GLCode
    {
        [Key]
        public int Id { get; set; }
        [Required(ErrorMessage = "Please enter name")]
        public string? Name { get; set; }
        [Required(ErrorMessage = "Please enter Description")]
        public string? Description { get; set; }


    }

Страница бритвы Опубликовать действие

       public async Task<IActionResult> OnPostAsync([FromBody] GLCode GLCode)
        {
           // GLCode dd = new GLCode();
         // var result = await TryUpdateModelAsync(GLCode);



           // TryValidateModel(GLCode);

            if (!ModelState.IsValid)
            {
             //  return BadRequest(this.ModelState.GetModelStateErrors());
            }
            string desc = "";
            foreach (var modelState in this.ModelState.Values)
            {

                foreach (var error in modelState.Errors)
                {
                    if (!String.IsNullOrWhiteSpace(error.ErrorMessage))
                        desc = desc + " " + error.ErrorMessage.ToString();

                    if (error.Exception != null)
                    {
                        desc = desc + " Exception: " + error.Exception.ToString();
                    }

                }
            }
}

Когда я отправляю Json запрос в функцию, я получаю все значения в объекте GLCode. Но при попытке проверить модель всегда получаю false.

Json запрос равен {"Id": 1 , "Name": "tt", "Description": "hhhh"}

и получим это enter image description here enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...