我正在使用 ASP.NET MVC 创建一个项目。
我的模型类如下所示:
public class CaseInformation
{
public int Id { get; set; }
public string CaseNumber { get; set; }
public string RitNumber { get; set; }
public string ApilNumber { get; set; }
public DateTime Date { get; set; }
public double CaseInvolvedRevenue { get; set; }
public string CaseShortDescription { get; set; }
public string CaseUpdateStatus { get; set; }
public CompanyDetails CompanyDetails { get; set; }
public int CompanyDetailsId { get; set; }
}
这里 CaseNumber
、RitNumber
、ApilNumber
只需要 1。我无法将 [Required]
放在所有这些上。我怎么做?请帮忙。
最佳答案
您可以实现IValidatableObject
CaseInformation
类本身中的接口(interface)。它看起来像这样:
public class CaseInformation : IValidatableObject
{
...
public IEnumerable<ValidationResult> Validate(ValidationContext ctx)
{
if (string.IsNullOrWhiteSpace(CaseNumber) &&
string.IsNullOrWhiteSpace(RitNumber) &&
string.IsNullOrWhiteSpace(ApilNumber))
{
yield return new ValidationResult("Your error message here.");
}
}
}
执行模型验证时,框架会调用 Validate(ValidationContext)
方法。在这里,我们只是检查所有三个值是否都缺失,如果缺失,我们会通过返回带有自定义错误消息的 ValidationResult
来发出错误信号。
关于c# - ASP.NET MVC DataAnnotation 需要 3 个属性中的 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52728856/