Я использую 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](https://i.stack.imgur.com/CvVmz.png)