【问题标题】:Custom Validation or Remove Validation on collection of object对象集合上的自定义验证或删除验证
【发布时间】:2009-09-20 14:10:08
【问题描述】:

我们正面临一个场景..这是:

我们的客户模型有地址对象的集合。该表格显示 3 个地址供客户输入。然而,只有第一个地址是强制性的。 现在我们的验证在地址模型上,类似于“街道地址不能为空”。

所以在提交表单时,对所有 3 个地址都执行了验证,即使第二个和第三个地址不是强制性的,验证摘要也会显示两次“街道地址 1 不能为空”的消息。

那么我们怎样才能使第二个和第三个地址的验证成为可选的呢? like it 只有在客户输入第二个和第三个地址时才会执行验证。我们只想使用服务器端验证。

或者在控制器中是否有办法从模型状态中删除错误消息并强制将 ModelState.IsValid 设置为 true ?

【问题讨论】:

  • 我一直在努力理解,为什么,为什么,为什么人们使用默认的验证模型,然后试图解决它的所有限制,而不是从一开始就使用他们自己的验证层。
  • 经验教我们!!我从我的知识开始。通过指出创建自定义验证(文章和示例)的正确方向来帮助我,我将进行探索。

标签: asp.net-mvc model-view-controller validation


【解决方案1】:

我们也有这个。

如果您的地址存储在集合中,您可以使用标准验证,并根据用户需要添加每个地址,确保始终至少有一个。

具有添加和删除地址操作,然后使用 JS 智能您的表单以在启用时发布一篇文章。

【讨论】:

  • 感谢您的回复。我们不想使用 JS。并且所有地址(如 3)将立即填充。还有其他方法吗?
  • 唯一的另一种方法是对父对象进行复杂验证,并且在任何地址模型属性上都没有必需
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
相关资源
最近更新 更多