RequiredIf Conditional Validation for two variables in MVC4
Maybe try this in your model:
[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; }
If the need for more complex validation arises, I'd recommend implementing 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;
}
}
If you combine property checks with IValidatableObject, be sure to note this behaviour.