我有一个包含子模型ChildModel1和ChildModel2的父模型ParentModel。
ChildModel1包含必需的数据批注,在视图内部使用ParentModel。它们都以相同的形式调用相同的服务器操作,具体取决于我在父模型中具有的布尔指示符,我希望能够省略ChildModel1或ChildModel2的验证,以便modelState不考虑它们。
有没有办法做到这一点?
答案 0 :(得分:0)
在您的发布操作中,只需分别删除每个子属性。如果您有一个或两个以上的属性,则希望跳过验证,我会将它们移到另一种方法中,以免使Post操作混乱。
[HttpPost]
public ActionResult AnAction(IndexVM model)
{
ModelState.Remove("Child.ChildProperty1");
ModelState.Remove("Child.ChildProperty2");
if (!ModelState.IsValid)
{
// put code here
}
// carry on
return View(model)
}