这是我的模型:
public class PhoneNumber {
public long Id { get; set; }
public string Tel1 { get; set; }
public string Tel2 { get; set; }
}
我如何强制客户端在创建操作中至少填写一个电话(Tel1 或 Tel2),我不想使用任何客户端脚本或 Controller 代码,我只是想在上面的模型中使用一些属性,例如 [需要]来实现这个目标?
最佳答案
只需更改模型并像这样使用自定义验证器:
public class PhoneNumber : IValidatableObject {
public long Id { get; set; }
public string Tel1 { get; set; }
public string Tel2 { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var field1 = new[] { "Tel1" };
var field2 = new[] { "Tel2" };
if (string.IsNullOrEmpty(Tel1))
if (String.IsNullOrEmpty(Tel2))
yield return new ValidationResult("At least Fill one of Tel1 or Tel2", field1);
if (string.IsNullOrEmpty(Tel2))
if (String.IsNullOrEmpty(Tel1))
yield return new ValidationResult("At least Fill one of Tel1 or Tel2", field2);
}
}
关于c# - 如何实现模型以强制客户端至少填写 ASP.NET MVC 中的两个输入之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8193826/