【发布时间】:2013-11-15 06:35:55
【问题描述】:
我想以编程方式一一验证模型列表。
我尝试了 TryValidateModel 但看起来它聚合了验证错误,因此当我遍历 10 个模型的列表时,如果第 5 个模型无效,则模型 6-10 TryValidateModel 返回 错误。
【问题讨论】:
标签: c# .net asp.net-mvc asp.net-web-api asp.net-mvc-validation
我想以编程方式一一验证模型列表。
我尝试了 TryValidateModel 但看起来它聚合了验证错误,因此当我遍历 10 个模型的列表时,如果第 5 个模型无效,则模型 6-10 TryValidateModel 返回 错误。
【问题讨论】:
标签: c# .net asp.net-mvc asp.net-web-api asp.net-mvc-validation
您可以使用控制器方法ValidateModel 或TryValidateModel。
ValidateModel - 如果模型无效则抛出异常。
TryValidateModel - 返回布尔值,表示模型是否有效。
来自MSDN:
当一个模型被验证时,所有属性的所有验证器都是 如果至少一个表单输入绑定到模型属性,则运行。这 TryValidateModel 类似于 ValidateModel 方法,不同之处在于 TryValidateModel 方法不会抛出 如果模型验证失败,则 InvalidOperationExceptionexception。
如果您逐一验证 模型列表,您可能希望通过调用 ModelState.Clear() 为每次迭代重置 ModelState。
【讨论】: