【发布时间】:2021-10-27 06:29:36
【问题描述】:
我有一个请求字段定义如下:
[MinLength(9)] [MaxLength(18)] public string Id { get; set; }
我希望用户能够为此字段输入一个空白字符串,而不是让它触发最小长度属性。是否可以为此添加一些其他属性,或者我是否需要删除 MinLength 属性并自己进行更多手动验证?
【问题讨论】:
-
如何通过继承
ValidationAttribute并覆盖IsValid方法来编写自定义验证器,然后可以将其用作数据注释属性 -
正如@thanzeel 所说,您要么必须编写具有相关继承的自定义验证器,要么(如果这不是您的约束中的选项)使用额外的变量
public string EnteredId {get; set; }直接获取用户输入 - 如果它不是 null 或空格,您可以转换为Id变量,该变量将处理最小/最大长度。 -
改用
StringLength?
标签: c# asp.net asp.net-web-api