3

我正在使用 ASP.NET MVC2。
我喜欢如何注释模型的字段并检查ModelState.IsValid.

检查它的明显原因是在进行验证时,但如果新的验证规则应用于模型,您是否应该始终检查它?
这样你就不会忘记/需要检查控制器是否检查IsValid.

是否有理由不在所有情况下都进行此检查?也许就在控制器动作有副作用(数据库写入等)时?

4

4 回答 4

7

但是如果新的验证规则应用于模型,您是否应该始终检查它?

您应该始终进行此检查,否则您最终会保留没有有效状态的模型。

于 2012-06-11T10:25:05.537 回答
5

通常,在 asp.net-mvc 中,传递给动作的模型是视图模型,它们包含所有且仅包含动作所需的数据。如果该数据无效,从理论上讲,操作应该无法完成其工作。

ModelState.IsValid确保行动所需的所有数据都处于良好状态,可以采取行动。我看不出您不想验证该数据的原因。

于 2012-06-11T10:25:37.977 回答
2

在尝试使用模型中收集的数据做某事之前,您应该始终检查模型是否有效。这首先是验证的目的。

于 2012-06-11T10:28:26.080 回答
2

看起来很明显,但我会试一试。当您不发布模型时,无需检查模型状态。常见的场景是当您从服务中获取数据并在 get 操作上显示时。

于 2012-06-15T23:41:57.447 回答