我正在使用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
接口。如下所示:
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
来发出错误信号。