我有一些条件验证的标准'RequiredIf'属性 我的表单和模型相当大,模型有63个属性,其中大部分都经过验证。
无论如何,我有一个问题,我的模型正在中加载我的验证正在执行。
如果我在'RequiredIf''IsValid'方法中的第一行代码上放置一个断点,我可以看到我的模型有很多空值。当我按F5(继续验证下一个属性)时,仍然有很多空值。如果我按F5大约5次,模型会神奇地填充我发布的数据。
我的第一次5-6次验证因此被搞砸了。任何人都知道如何加载模型?我没有使用自定义模型绑定。
答案 0 :(得分:3)
解决方案是完全“覆盖”标准模型绑定。创建自己的模型绑定器,手动加载整个模型,然后执行所有模型验证。我仍然相信在这个标准的Model Binder中只有一些方式可以说“嘿,在验证之前加载整个模型”,但我现在必须自己制作。
答案 1 :(得分:1)
我会重新设计您的页面和模型,并在几个小模型中分割数据模型和视图,可能使用多个部分视图。 这样您就可以更好地管理模型。想象一下为该模型编写测试。 63个属性太多了,可能你需要解决这个问题,否则听起来你以后会遇到问题。