首页 > 解决方案 > Modelstate 在有效对象上返回 Isvalid = false

问题描述

我正在使用 asp core 3.1 剃须刀页面。在我的一个页面上,将 JSON 发布到剃须刀页面发布操作。模型绑定工作完美。我的问题是当我调用 ModelState.IsValid 时,即使 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; }


    }

Razor 页面发布操作

       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 对象中的所有值。但是在尝试验证模型时总是会出错。

Json 请求是 { "Id":1, "Name": "tt", "Description": "hhhh"}

得到这个 在此处输入图像描述 在此处输入图像描述

标签: asp.net-corerazor

解决方案


推荐阅读