MVC3 Lazy模型绑定/加载

本文关键字:加载 绑定 模型 Lazy MVC3 | 更新日期: 2023-09-27 18:28:54

我有一些条件验证的标准'RequiredIf'属性
我的表单和模型相当大,模型有63个属性,其中大部分都经过了验证。

无论如何,我遇到了一个问题,我的模型在中加载,而我的验证正在执行
如果我在"RequiredIf"IsValid"方法内的第一行代码上设置断点,我可以看到我的Model有很多空值。当我按F5(继续验证下一个属性)时,仍然有很多null。如果我再按F5大约5次,模型就会神奇地填充我发布的数据。

因此,我的前5-6次验证都搞砸了。有人知道模型是如何加载的吗?我没有使用自定义模型绑定。

MVC3 Lazy模型绑定/加载

解决方案是完全"覆盖"标准模型绑定。创建自己的模型绑定器,手动加载整个模型,然后执行所有模型验证。我仍然相信,在这个标准的模型绑定器中,有一些的方式可以说"嘿,在验证之前加载整个模型",但我现在必须自己制作。

我会重新设计您的页面和模型,并将数据模型和视图拆分为几个小模型,可能会使用几个局部视图。通过这种方式,您可以更好地管理您的模型。想象一下为该模型编写测试。63属性太多了,你可能需要解决这个问题,否则你以后会遇到问题。