C# 在 List<string> 上设置数据注释

标签 c# list validation annotations

<分区>

我有这段代码:

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

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

此外,这工作正常:

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

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

最佳答案

创建自己的数据标注属性,粗略的例子:

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; }

关于C# 在 List<string> 上设置数据注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17449651/

相关文章:

WPF 验证 : Clearing all validation errors

c# - 区分根 CA 和中间 CA 证书

c# - Xamarin Forms - 谷歌地图在 map 上显示多个标记

python - 为什么我的程序只删除列表中的所有其他字符?

python - 在 Python 中按属性获取对象列表中的索引

ruby-on-rails - 如何在 Rails 3 中显示验证错误?

javascript - 显示有关导出完整 RadGrid Telerik Web 组件的数据的 javascript 警报

c# - 我可以处理锁定的对象吗?

java - RxJava 过滤空列表并使用 firstOrDefault

iphone - 如何在 UITextfield 验证中避免特殊字符(@、#、& 等)