全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Blazor 表单验证 DataAnnotations 使用方法

Blazor表单验证使用DataAnnotations特性(如[Required]、[EmailAddress])声明规则,配合EditForm、DataAnnotationsValidator及ValidationMessage组件实现自动校验;需注入EditContext调用Validate()手动触发,并支持自定义验证特性。

Blazor 表单验证用 DataAnnotations 很直接,核心是给模型属性加特性(如 [Required][EmailAddress]),再配合 EditFormValidationSummary/ValidationMessage 组件自动触发校验。

模型上标注验证规则

在 C# 模型类中,用 System.ComponentModel.DataAnnotations 命名空间下的特性声明约束:

  • [Required]:字段必填(空字符串或 null 都不通过)
  • [StringLength(50, MinimumLength = 2)]:限制长度范围
  • [EmailAddress]:基础邮箱格式检查(正则匹配,不发邮件验证)
  • [Range(18, 120)]:数值范围(支持 int、double 等)
  • [RegularExpression(@"^\d{3}-\d{2}-\d{4}$")]:自定义正则(如社保号格式)

注意:这些特性只影响客户端显示逻辑和基础服务端验证,不替代后端业务校验。

在 EditForm 中启用验证

把模型绑定到 EditForm,它会自动监听输入变化并触发 DataAnnotationsValidator


    
    






DataAnnotationsValidator 是关键组件,没有它,特性不会生效;ValidationMessageFor 参数必须是表达式(@(() => ...)),不能写字符串或变量。

手动触发表单验证

默认只在提交或失去焦点时校验。如需主动校验(比如点击“下一步”但不提交),可注入 EditContext

  • 在组件中定义 private EditContext? editContext;
  • EditForm 上添加 @ref="editContext"
  • 调用 editContext?.Validate() 即可立即运行所有规则

校验结果会更新 UI,ValidationSummary 和各 ValidationMessage 也会同步刷新。

自定义验证特性(可选进阶)

内置特性不够用时,可继承 ValidationAttribute 写自己的规则:

public class FutureDateAttribute : ValidationAttribute
{
    protected override ValidationResult? IsValid(object? value, ValidationContext validationContext)
    {
        if (value is DateTime date && date < DateTime.Today)
            return new ValidationResult("日期不能早于今天");
        return ValidationResult.Success;
    }
}

然后像其他特性一样加到属性上:[FutureDate]。服务端同样生效,Blazor WebAssembly 也支持(因代码 AOT 编译后仍可执行)。

基本上就这些。DataAnnotations 验证轻量、声明式、前后端复用,适合大多数场景。注意别依赖它做复杂业务判断(比如“用户名是否已存在”得靠后端 API),那是 ValidationMessageStore 或自定义异步验证的活儿。


# 后端  # ai  # 邮箱  # c#  # red  # NULL  # for  # 命名空间  # 表单验证  # 字符串  # int  # double  # 继承  # private  # 异步  # ui  # 自定义  # 表单  # 服务端  # 自己的  # 进阶  # 都不  # 也会  # 那是  # 可选 


相关文章: 长沙企业网站制作哪家好,长沙水业集团官方网站?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  建站之星IIS配置教程:代码生成技巧与站点搭建指南  太原网站制作公司有哪些,网约车营运证查询官网?  怎么将XML数据可视化 D3.js加载XML  教程网站设计制作软件,怎么创建自己的一个网站?  婚礼视频制作网站,学习*后期制作的网站有哪些?  已有域名能否直接搭建网站?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  常州自助建站费用包含哪些项目?  浅谈Javascript中的Label语句  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  建站之星多图banner生成与模板自定义指南  如何通过山东自助建站平台快速注册域名?  建站之星3.0如何解决常见操作问题?  股票网站制作软件,网上股票怎么开户?  动图在线制作网站有哪些,滑动动图图集怎么做?  建站之星导航菜单设置与功能模块配置全攻略  如何快速登录WAP自助建站平台?  如何在IIS中配置站点IP、端口及主机头?  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何通过cPanel快速搭建网站?  c# await 一个已经完成的Task会发生什么  如何用AWS免费套餐快速搭建高效网站?  如何选择高效可靠的多用户建站源码资源?  北京网站制作网页,网站升级改版需要多久?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  专业网站建设制作报价,网页设计制作要考什么证?  如何在Windows环境下新建FTP站点并设置权限?  制作旅游网站html,怎样注册旅游网站?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  教学论文网站制作软件有哪些,写论文用什么软件 ?  历史网站制作软件,华为如何找回被删除的网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何通过虚拟主机快速完成网站搭建?  制作网站外包平台,自动化接单网站有哪些?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  建站之星如何一键生成手机站?  如何零基础在云服务器搭建WordPress站点?  建站VPS能否同时实现高效与安全翻墙?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  ui设计制作网站有哪些,手机UI设计网址吗?  c# 服务器GC和工作站GC的区别和设置  c++怎么用jemalloc c++替换默认内存分配器【性能】  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  北京专业网站制作设计师招聘,北京白云观官方网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。