asp.net-core - 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"}
解决方案
推荐阅读
- android - Recyclerview onClickListener 在带有 FirebaseRecyclerAdapter 的 Android 中不起作用。如何设置?
- json - 使用 Groovy 转换 JSON
- python - 无法运行仪表测试 - connectex:无法建立连接,因为目标机器主动拒绝它
- java - 如何在 Thymeleaf 中打印警告文件缺失消息?
- c# - ICollection.ToList().Insert 不插入值
- python - 解析 PDF 文件 - 我需要转义字符作为分隔符
- java - 尝试在 datastage 11.7 中写入 parquet 文件时出错(File_Connector_20,0:java.lang.NoClassDefFoundError:org.apache.hadoop.fs.FileSystem)
- smalltalk - Smalltalk 中定义的类变量在哪里?
- c# - 在 BeforeFeature 方法中初始化 webdriver
- assembly - 汇编编程中重新定义错误汇编