MVC4中两个变量的RequiredIf条件验证
RequiredIf Conditional Validation for two variables in MVC4
我有一个模特 class 正在关注
public bool Saturday{ get; set; }
public bool Sunday{ get; set; }
public string Holiday{ get; set; }
我想在其中使用星期六和星期日字段为假日字段使用 RequiredIf 条件。我可以像下面那样使用
[RequiredIf("Sunday,Saturday",false)]
public string Holiday{ get; set; }
所以我不知道如何在我的模型中使用 RequiredIf 条件 class,所以请有人帮助我
我的项目中有 RequiredIf。
[Required]
public int SalesID { get; set; }
[RequiredIf("SalesID==1", ErrorMessage = "License is required.")]
public string License{ get; set; }
仅当 SalesID 为 1 时 License 留空时显示错误消息 'License is required.'。如果 SalesID 为 1,License 不能为空。
对于您的代码,它应该类似于
[RequiredIf("Sunday,Saturday",AllowEmptyStrings=false)]
public string Holiday{ get; set; }
这意味着如果星期日和星期六为真,您可以允许假日 属性 为空字符串。
也许在你的模型中试试这个:
[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; }
如果需要进行更复杂的验证,我建议实施 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.
我有一个模特 class 正在关注
public bool Saturday{ get; set; }
public bool Sunday{ get; set; }
public string Holiday{ get; set; }
我想在其中使用星期六和星期日字段为假日字段使用 RequiredIf 条件。我可以像下面那样使用
[RequiredIf("Sunday,Saturday",false)]
public string Holiday{ get; set; }
所以我不知道如何在我的模型中使用 RequiredIf 条件 class,所以请有人帮助我
我的项目中有 RequiredIf。
[Required]
public int SalesID { get; set; }
[RequiredIf("SalesID==1", ErrorMessage = "License is required.")]
public string License{ get; set; }
仅当 SalesID 为 1 时 License 留空时显示错误消息 'License is required.'。如果 SalesID 为 1,License 不能为空。
对于您的代码,它应该类似于
[RequiredIf("Sunday,Saturday",AllowEmptyStrings=false)]
public string Holiday{ get; set; }
这意味着如果星期日和星期六为真,您可以允许假日 属性 为空字符串。
也许在你的模型中试试这个:
[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; }
如果需要进行更复杂的验证,我建议实施 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.