Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 请求对象上的必填字段未强制执行_C#_Data Annotations - Fatal编程技术网

C# 请求对象上的必填字段未强制执行

C# 请求对象上的必填字段未强制执行,c#,data-annotations,C#,Data Annotations,我从MS开始,但我没有看到在字符串字段上强制执行所需的注释。它适用于其他字段,但不适用于字符串。我怀疑这是因为字符串是可以为空的,而且一定有什么东西正在将缺少的字段转换为空字符串?在下面的示例中,我在这个字段上看到了错误,但在那个字段上没有看到。有什么需要改变的想法吗 using System.ComponentModel.DataAnnotations; ... [Required(ErrorMessage = "This field is required.")] public doubl

我从MS开始,但我没有看到在字符串字段上强制执行所需的注释。它适用于其他字段,但不适用于字符串。我怀疑这是因为字符串是可以为空的,而且一定有什么东西正在将缺少的字段转换为空字符串?在下面的示例中,我在这个字段上看到了错误,但在那个字段上没有看到。有什么需要改变的想法吗

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

尝试设置最小长度可能是多少?