C# ModelState.isValid始终为false。网络核心剃须刀页面

C# ModelState.isValid始终为false。网络核心剃须刀页面,c#,asp.net-core,.net-core,edit,modelstate,C#,Asp.net Core,.net Core,Edit,Modelstate,每次我得到ModelState.isvalid=false时。并且employee.ID为空。在html页面上,我使用asp进行隐藏,所以它应该与id匹配,但仍然为空,有人知道吗 public Employees Employees {get; set;} public async Task<IActionResult> OnPost() { //if (!ModelState.IsValid) //{ /

每次我得到ModelState.isvalid=false时。并且employee.ID为空。在html页面上,我使用asp进行隐藏,所以它应该与id匹配,但仍然为空,有人知道吗

      public Employees Employees {get; set;}
     public async Task<IActionResult> OnPost()
    {
        //if (!ModelState.IsValid)
        //{
        //    var errors = ModelState.SelectMany(x => x.Value.Errors.Select(z => z.Exception));
        //}
        if (ModelState.IsValid)
        {
            var dbEmpy = await _db.Employees.FindAsync(Employees.ID);
            dbEmpy.FirstName = Employees.FirstName;
            dbEmpy.LastName = Employees.LastName;
            dbEmpy.Salary = Employees.Salary;
            dbEmpy.isCEO = Employees.isCEO;
            dbEmpy.isManager = Employees.isManager;
            dbEmpy.ManagerId = Employees.ManagerId;
            
            await _db.SaveChangesAsync();

            return RedirectToPage("ListEmpolyee/index");
        }
        return RedirectToPage();
    }
}
公共雇员雇员{get;set;}
公共异步任务OnPost()
{
//如果(!ModelState.IsValid)
//{
//var errors=ModelState.SelectMany(x=>x.Value.errors.Select(z=>z.Exception));
//}
if(ModelState.IsValid)
{
var dbEmpy=await _db.Employees.FindAsync(Employees.ID);
dbEmpy.FirstName=Employees.FirstName;
dbEmpy.LastName=Employees.LastName;
dbEmpy.Salary=Employees.Salary;
dbEmpy.isCEO=Employees.isCEO;
dbEmpy.isManager=Employees.isManager;
dbEmpy.ManagerId=Employees.ManagerId;
等待_db.SaveChangesAsync();
返回重定向Topage(“列表对象/索引”);
}
返回重定向Topage();
}
}
和页面

         <div class="border container" style="padding:20px;">
<form method="post">
    <input type="hidden" asp-for="Employees.ID" />
    <span class="text-danger" asp-validation-summary="ModelOnly"></span>
    <div class="form-group row">
        <div class="col-4">
            <label asp-for="Employees.FirstName"></label>
        </div>
       
    </div>

     public class Employees
{
    [Key]
    public int ID { get; set; }
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
    [Required]
    public decimal Salary { get; set; }
    public bool isCEO { get; set; }
    public bool isManager { get; set; }
    public int? ManagerId { get; set; }
}

公营雇员
{
[关键]
公共int ID{get;set;}
[必需]
公共字符串名{get;set;}
[必需]
公共字符串LastName{get;set;}
[必需]
公共十进制工资{get;set;}
公共bool isCEO{get;set;}
公共bool isManager{get;set;}
公共int?ManagerId{get;set;}
}

根据验证规则,其他字段是否也具有正确的值?您可以共享Employees类代码吗?所有其他值,如firstname、lastname等,都会在[Key]下为model.[bindproperty]添加一个valueAdd bindproperty标记。我想id只是没有进入页面。如果我添加输入并手动添加id:1。它起作用了。但无法获取id以预填充输入。。。我在我的url中得到了id,所以它在那里,但是。。。