当前位置 : 主页 > 编程语言 > c语言 >

vb.net – 集合的MVC Dataannotation验证规则?

来源:互联网 收集:自由互联 发布时间:2021-06-24
是否有基于集合的属性的数据注释验证规则? 我有以下内容 DisplayName("Category") Range(1, Integer.MaxValue, ErrorMessage:="Please select a category") Property CategoryId As Integer DisplayName("Technical Services") Pr
是否有基于集合的属性的数据注释验证规则?

我有以下内容

<DisplayName("Category")>
  <Range(1, Integer.MaxValue, ErrorMessage:="Please select a category")>
  Property CategoryId As Integer

  <DisplayName("Technical Services")>
  Property TechnicalServices As List(Of Integer)

我正在寻找一个验证器,我可以添加到TechnicalServices属性来设置集合大小的最小值.

我认为这样的事情可能会有所帮助:

public class MinimumCollectionSizeAttribute : ValidationAttribute
{
    private int _minSize;
    public MinimumCollectionSizeAttribute(int minSize)
    {
        _minSize = minSize;
    }

    public override bool IsValid(object value)
    {
        if (value == null) return true;
        var list = value as ICollection;

        if (list == null) return true;

        return list.Count >= _minSize;
    }    
}

还有改进的余地,但这是一个有效的开始.

网友评论