lac*_*der 4 c# asp.net-mvc asp.net-core-mvc
我正在尝试验证通用列表,例如List<Sales>
,以便该列表应至少包含通过复选框添加的一项。
以下是我尝试执行此操作的方法:
public class SalesViewModel :IValidatableObject
{
[Required]
public List<Sales> AllSales{ get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (AllSales.Length == 0)
yield return new ValidationResult("Please pick one sales item");
}
}
Run Code Online (Sandbox Code Playgroud)
只是想知道这是否是处理这种情况的正确方法。
小智 7
您还可以创建自定义验证属性,类似于以下内容:
public class EnsureOneItemAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
var list = value as IList;
if (list != null)
{
return list.Count > 0;
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
然后像这样应用它:
[EnsureOneItemAttribute (ErrorMessage = "Please pick one sales item")]
public List<Sales> AllSales{ get; set; }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4160 次 |
最近记录: |