0

我有一个类人。这与学生有关。现在学生类包含一个日期字段“CreatedOn”。

 class Person
 {
     String Name;
     List<Student> students;
     -----rest of props and methods
 }

 class Student
 {
     DateTime CreatedOn;
     DateTime UpdatedOn;
     ---------rest of props and methods
 }

现在我的问题是我想在更新人员类的对象时从模型状态中删除这些日期(学生类的)。我怎样才能做到这一点?

因为一个人可以有 2 个学生,而另一个人可以有任意数量的学生。

如果我需要从 ModelState 中删除“Name”,我会为 person 使用 ModelState.Remove("Name") 但我该如何为 person 的学生执行此操作。是否有 ModelState.Remove("students") 或 ModelState.Remove("students[0]") 等?

请帮我举个例子

4

2 回答 2

1

我之前在这里回答过类似的问题

对于那些负担不起额外点击访问链接的人

  1. 忽略其他属性(UserInfo 除外):ModelState.IsValidField(UserInfo)
  2. 清除/删除属性错误:ModelState["ExtraInfo"].Errors.Clear();
  3. 创建自定义验证器,也由ataravati建议:MVC 自定义验证属性

选项 1 和 2 仅在禁用客户端验证时才有效。

于 2015-03-17T12:04:43.633 回答
0

添加两个视图模型,一个用于更新操作,一个用于创建操作,并从视图模型中排除 createdon 和 updatedon 属性,这样您就可以保持控制器清洁,避免额外的清除或添加错误的复杂性,只需测试 ModelState.IsValid。如果有效,则分别使用 updatedon 或 createdon 更新或创建学生。

于 2014-11-24T06:37:42.930 回答