我的 View 模型中有 2 个文本字段,text1 和 text2。我需要验证是否输入了 text1,然后必须输入 text2,反之亦然。在 View 模型的自定义验证中如何实现这一点?
谢谢。
最佳答案
您可以使用实现 IValidatableObject
(来自 System.ComponentModel.DataAnnotations
命名空间)在您的 View 模型上进行服务器端验证:
public class AClass : IValidatableObject
{
public int Id { get; set; }
public string Name { get; set; }
public string SecondName { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if( (!string.IsNullOrEmpty(Name) && string.IsNullOrEmpty(SecondName)) || (string.IsNullOrEmpty(Name) && !string.IsNullOrEmpty(SecondName)) )
yield return new ValidationResult("Name and Second Name should be either filled, or null",new[] {"Name","SecondName"});
}
}
现在确定Name和SecondName是否都设置了,或者为null,则模型有效,否则无效。
关于asp.net-mvc - 对 2 个字段进行 asp.net mvc 验证 - 如果输入其他字段,则必须存在一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9371550/