C# 使用System.ComponentModel.DataAnnotations的模型绑定
我正在使用System.ComponentModel.DataAnnotations进行模型绑定和验证ASP.NET MVC应用程序 我有一个像这样的C#model班C# 使用System.ComponentModel.DataAnnotations的模型绑定,c#,asp.net-mvc,model-binding,C#,Asp.net Mvc,Model Binding,我正在使用System.ComponentModel.DataAnnotations进行模型绑定和验证ASP.NET MVC应用程序 我有一个像这样的C#model班 public class Employee { public Int64 EmployeeId { get; set; } [Required] public string FullName { get; set; } [Required] public string Username
public class Employee
{
public Int64 EmployeeId { get; set; }
[Required]
public string FullName { get; set; }
[Required]
public string Username { get; set; }
public string Password { get; set; }
[Compare("Password")]
public string ConfirmPassword { get; set; }
}
当我通过AJAX提交表单以插入记录时,值被正确设置为Employee
object
但是ModelState.IsValid
语句始终为false,并且它表示EmployeeId字段是必需的
因为EmployeeId
是数据库中的一个标识列,所以我没有在controller中设置它
如何解决此问题
更新记录时,我需要根据需要制作
EmployeeId
。我该如何处理呢?我认为最简单/最干净的方法是将EmployeeId
设为空:
公共类员工
{
public Int64?EmployeeId{get;set;}
// ...
}
实际上,如果您无法解决该错误并希望消除该错误,则只需从Modelstate中清除该错误…..Modelstate.Remove(“{key}”);要删除错误,您可以在将表单发布到的方法中添加属性[Bind(Exclude=“EmployeeId”)]
。它看起来像:public ActionResult InsertRecord([Bind(Exclude=“EmployeeId”)]Employee-Employee)
因为插入和更新发生在同一个函数中,所以我认为不能添加[Bind(Exclude=“EmployeeId”)]
属性<代码>ModelState.Remove(“{key}”)代码>会有帮助。@AutumnValentine啊,我明白了。我不知道这个事实。那么,Remove
应该适用于您的案例。