我有一个跟随
的模型类 public bool Saturday{ get; set; }
public bool Sunday{ get; set; }
public string Holiday{ get; set; }
我想使用星期六和星期日字段在Holiday字段中使用RequiredIf条件。我可以像下面那样使用
[RequiredIf("Sunday,Saturday",false)]
public string Holiday{ get; set; }
所以我不知道如何在我的模型类中使用RequiredIf条件,所以请有人帮助我
答案 0 :(得分:13)
也许在你的模特中试试这个:
[Required]
public bool Saturday{ get; set; }
[Required]
public bool Sunday{ get; set; }
[NotMapped]
public bool SatSun
{
get
{
return (!this.Saturday && !this.Sunday);
}
}
[RequiredIf("SatSun",true)]
public string Holiday{ get; set; }
答案 1 :(得分:1)
如果需要进行更复杂的验证,我建议实现IValidatableObject。
public class YourModel : IValidatableObject
{
public bool Saturday{ get; set; }
public bool Sunday{ get; set; }
public string Holiday{ get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var result = new List<ValidationResult>();
if (Saturday == false && Sunday == false && string.IsNullOrEmpty(Holiday))
{
result.Add(new ValidationResult("Holiday is required outside weekends"));
}
return result;
}
}
如果将属性检查与IValidatableObject结合使用,请确保注意this behaviour。
答案 2 :(得分:0)
我的项目中有必填项。
[Required]
public int SalesID { get; set; }
[RequiredIf("SalesID==1", ErrorMessage = "License is required.")]
public string License{ get; set; }
显示错误消息“需要许可证”。当SalesID为1时,许可证保留为空白。如果SalesID为1,则许可证不能为空。
对于您的代码,它应该类似于
[RequiredIf("Sunday,Saturday",AllowEmptyStrings=false)]
public string Holiday{ get; set; }
这意味着如果周日和周六都是真的,您可以允许Holiday属性为空字符串。