C# 请求对象上的必填字段未强制执行
我从MS开始,但我没有看到在字符串字段上强制执行所需的注释。它适用于其他字段,但不适用于字符串。我怀疑这是因为字符串是可以为空的,而且一定有什么东西正在将缺少的字段转换为空字符串?在下面的示例中,我在这个字段上看到了错误,但在那个字段上没有看到。有什么需要改变的想法吗C# 请求对象上的必填字段未强制执行,c#,data-annotations,C#,Data Annotations,我从MS开始,但我没有看到在字符串字段上强制执行所需的注释。它适用于其他字段,但不适用于字符串。我怀疑这是因为字符串是可以为空的,而且一定有什么东西正在将缺少的字段转换为空字符串?在下面的示例中,我在这个字段上看到了错误,但在那个字段上没有看到。有什么需要改变的想法吗 using System.ComponentModel.DataAnnotations; ... [Required(ErrorMessage = "This field is required.")] public doubl
using System.ComponentModel.DataAnnotations;
...
[Required(ErrorMessage = "This field is required.")]
public double? ThisField { get; set; }
[Required]
public string ThatField { get; set; }
更新-对于那个特定的ThatField,我还使用了一个自定义验证器,看起来两个验证器都可以运行。因此,即使没有提供该值,我的自定义验证器仍在运行,并且由于空值而失败。换言之,[必选]在该领域本身就可以很好地发挥作用 这项工作:
[Required]
public string ThatField { get; set; }
这并不是:
[Required, CustomAttribute("valueA", "valueB", "valueC")]
public string ThatField { get; set; }
尝试设置最小长度可能是多少?