如何从modelstate MVC中删除集合

时间:2014-11-23 16:33:06

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-5 asp.net-mvc-5.2

我有一个班级的人。哪个与学生有关。现在学生班级包含一个日期字段“CreatedOn”。

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

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

现在我的问题是我想在更新person类的对象时从modelstate中删除这些日期(学生类)。我怎么能这样做?

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

如果我需要从ModelState中删除“Name”,我会使用ModelState.Remove(“Name”) 但我怎么能为人的学生做这件事。是否有像ModelState.Remove(“学生”)或 ModelState.Remove(“students [0]”)等?

请帮我举例

2 个答案:

答案 0 :(得分:1)

我在here

之前回答了类似的问题

对于那些无法支付额外点击费用的人来访问

  1. 忽略其他属性(UserInfo除外): ModelState.IsValidField(UserInfo)
  2. 清除/删除属性错误: ModelState [&#34; ExtraInfo&#34;]。Errors.Clear();
  3. 创建自定义验证程序, ataravati 建议:MVC Custom validation attribute
  4. 选项1和2仅在禁用客户端验证时才有效。

答案 1 :(得分:0)

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