我如何在某些时候验证某些字段?
问题描述:
我在.NET核心MVC中使用C#,我有一个表格,用户需要填写。我如何在某些时候验证某些字段?
所有显示在页面上的字段都需要填写。我遇到的问题是表单中的一些字段被隐藏,而其他字段则根据以前在表单上做出的选择来显示。
如果我在模型中的所有字段上放置了[Required]标签,当我验证ModelState时,它将未显示的字段标记为无效。
有没有一种方法,当我尝试验证ModelState时,我只能验证页面上显示的字段并忽略隐藏的字段?
谢谢。
答
不幸的是,[Required]
在MVC全球工作。
您将需要开发自己的验证属性。希望有人已经做到了,但对于MVC与.NET框架(see the code here):
为了验证有以下形式:“验证,只有当 这等领域具有一定的价值这一领域”,我已经编写了3个属性: RequiredIf,RangeIf和RegularExpressionIf表示从 继承ValidationAttribute。
现在您需要翻译它才能使用.NET Core。
如果您正在寻找更通用的解决方案,Web窗体框架有一个非常好的概念验证组。它允许您验证 - 或不 - 按逻辑分组的属性。