4

我有这段代码:

[Required]
public List<string> myStringList { get; set; }

不幸的是,它不起作用,验证器完全忽略了它。

此外,这很好用:

[Required]
public string myString { get; set; }

和 DateTimes 也可以正常工作。显然,问题不在于我的验证器,而在于注释。所以问题是,我应该如何在我的列表中设置数据注释?

4

2 回答 2

8

创建自己的数据注释属性,粗略示例:

public class ListHasElements : ValidationAttribute
{
   public override bool IsValid(List mylist)
   {
      if(mylist == null)
         return false;

      return mylist.Any();   
   }
}

然后像这样使用它:

[ListHasElements(ErrorMessage = "List must contain an element")]
public List<string> myStringList { get; set; }
于 2013-07-03T13:57:17.057 回答
0

除了@DGibbs 指定的内容之外,如果要执行客户端验证,则需要在自定义类属性中继承 IClientValidatable 接口并覆盖 GetClientValidationRules 方法。这将注册客户端脚本,如 JavaScript 函数和这些方法中的参数。请看这个例子这个

于 2013-07-03T14:05:33.653 回答