如何修改ASP.NET Core标签助手默认输出的验证错误提示文本
自定义ASP.NET Tag Helper默认验证错误信息的方法
完全可以替换默认错误文本,以下是两种常用实现方案:
- 方案1:单个属性自定义提示(灵活适配不同字段的个性化提示)
在表单绑定的模型类对应属性上,通过[Required]数据注解的ErrorMessage参数指定自定义提示即可:
using System.ComponentModel.DataAnnotations; // 你的表单绑定模型类 public class TicketSubmitModel { [Required(ErrorMessage = "请输入项目名称")] public string ProjectName { get; set; } // 其他字段也可按同样规则配置 [Required(ErrorMessage = "请填写问题描述")] [StringLength(500, ErrorMessage = "问题描述不能超过500字")] public string Description { get; set; } }
- 方案2:全局统一替换所有必填字段的默认提示(适合全站统一提示规则,无需逐个属性配置)
如果不需要给每个字段单独配置提示,想要所有必填字段默认提示统一,可以在服务注册阶段配置ModelBindingMessageProvider,以.NET 6+的Program.cs为例:
var builder = WebApplication.CreateBuilder(args); // 其他服务注册逻辑 builder.Services.AddMvc(options => { // 替换必填字段默认提示,{0}会自动替换为对应的字段名 options.ModelBindingMessageProvider.SetValueIsRequiredAccessor(fieldName => $"请填写{fieldName}字段"); // 可根据需求替换其他类型的默认验证提示,例:数字格式错误提示 options.ModelBindingMessageProvider.SetValueMustBeANumberAccessor(fieldName => $"{fieldName}必须为有效数字"); }); // 后续中间件配置、启动逻辑 var app = builder.Build(); app.Run();
配置完成后,原有的前端表单代码不需要做任何修改,Tag Helper会自动渲染你配置的自定义错误文本。
内容的提问来源于stack exchange,提问作者Kaguyya88
相关产品推荐
相关产品推荐

