我有 2 个字段:
FirstName
LastName
而且其中只有一个是必需的。但是如果两者都被省略,我希望这两个字段都被突出显示。如果其中一项已填写,则模型没问题,应提交表单。
如何做到这一点?
最佳答案
所有复杂的验证都从您的 View 模型继承自 IValidatableObject 开始。然后您覆盖 Validate 并放入您自己的验证规则。
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
if (String.IsNullOrWhiteSpace(FirstName) && String.IsNullOrWhiteSpace(LastName))
{
yield return new ValidationResult("A name must be entered.", new string[] { "FirstName", "LastName" });
}
}
请注意,这仅确保服务器端验证此规则。如果您想要它在客户端,您需要编写自己的 JavaScript/jQuery 代码来处理验证。
关于c# - 验证所需的两个字段之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15931422/