导读:本期聚焦于小伙伴创作的《如何使用 Fluent Validation 检查 C# 中属性的最小长度和最大长度验证?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何使用 Fluent Validation 检查 C# 中属性的最小长度和最大长度验证?》有用,将其分享出去将是对创作者最好的鼓励。

在 C# 项目里,使用 Fluent Validation 可以很方便地通过 Length 方法对字符串属性设置最小长度和最大长度验证,避免手写大量判断逻辑。下面先看一个基础示例。

如何使用 Fluent Validation 检查 C# 中属性的最小长度和最大长度验证?

基础长度验证写法

假设我们有一个用户注册模型,其中包含用户名属性,要求长度在 3 到 20 之间。可以定义如下验证器:

using FluentValidation;

public class UserModel
{
    public string UserName { get; set; }
}

public class UserValidator : AbstractValidator<UserModel>
{
    public UserValidator()
    {
        // 最小长度3,最大长度20
        RuleFor(x => x.UserName)
            .Length(3, 20)
            .WithMessage("用户名长度必须介于 3 到 20 个字符之间");
    }
}

上面代码中,Length(3, 20) 就是同时指定了最小长度和最大长度。如果传入的字符串长度小于 3 或大于 20,就会触发后面定义的错误消息。

只限制最小或最大长度

如果业务上只需要限制一边,也可以只传一个参数:

  • 只限制最小长度:使用 Length(5) 表示至少 5 个字符
  • 只限制最大长度:使用 MaximumLength(10)Length(0, 10)
public class ProductValidator : AbstractValidator<ProductModel>
{
    public ProductValidator()
    {
        RuleFor(x => x.Name)
            .MinimumLength(2)
            .WithMessage("产品名称至少 2 个字符");

        RuleFor(x => x.Desc)
            .MaximumLength(100)
            .WithMessage("描述不能超过 100 个字符");
    }
}

在 ASP.NET Core 中使用

注册验证器后,Controller 接收模型时会自动执行验证,失败时返回 400 错误:

// Program.cs 中注册
builder.Services.AddControllers()
    .AddFluentValidation(fv =>
        fv.RegisterValidatorsFromAssemblyContaining<UserValidator>());

当提交的 UserName 长度不符合要求时,接口会直接返回验证错误信息,不需要在业务代码里手动调用验证方法。

小结

通过 Fluent Validation 的 LengthMinimumLengthMaximumLength 方法,可以清晰、可维护地实现 C# 属性的最小长度和最大长度验证,减少重复代码并提升可读性。

Fluent_ValidationC#length_validation修改时间:2026-07-30 06:54:16

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。