.NET Core中的正则表达式验证

问题描述 投票:0回答:1

我试图通过模型类中的RegulardExpression注解来验证API控制器的输入。当我输入一个字符串输入作为属性的值时,它工作得很好。然而,我遇到的问题是,对于一个空字符串,它不会返回错误,所以在属性值是空字符串的情况下,验证不会返回错误。

下面是我的模型类和注解的例子。

    public class TestClass
{
    [RegularExpression(@"^[0-9]{7}$")]
    public string TestField{ get; set; }
}

控制器的方法是这样的

[Route("update/test")]
[HttpPut]
public async Task<IActionResult> UpdateObject(TestClass test)
    {
        .........
    }

你能告诉我如何设置regex,使它能识别空字符串不是有效输入吗?

更新:在我的类字段中添加[MinLength(1)]属性,使我可以禁止输入空字符串作为字段的输入。

regex validation asp.net-core asp.net-apicontroller
1个回答
0
投票

来自MS Docs。

如果属性值为空或空字符串(""),该值会自动通过RegularExpressionAttribute属性的验证。要验证该值不是空或空字符串,请使用 RequiredAttribute 属性。

请看 正则表达式属性备注

因此,正如评论中提到的,你需要添加以下内容。Required 属性也是。

© www.soinside.com 2019 - 2024. All rights reserved.