You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改ASP.NET Core中字符串长度验证的提示信息

提问内容

我需要对表单中的字符串输入字段进行验证。由于该字段为必填项,ASP.NET Core已自动校验其是否为空。

(截图说明:展示ASP.NET Core默认的必填项空值验证提示界面)

我已在模型上添加了最大长度和最小长度属性,希望在输入不合法时修改对应的验证提示信息。

(截图说明:展示模型类中添加长度验证属性的代码片段)

解决方案

方法一:直接在数据注解中指定自定义错误信息

在模型的验证属性中,通过ErrorMessage参数直接设置自定义提示文本,覆盖默认信息:

示例代码(用[StringLength]统一指定长度范围)

public class YourFormModel
{
    [Required(ErrorMessage = "请填写此字段")]
    [StringLength(50, MinimumLength = 3, ErrorMessage = "输入内容长度必须在3-50个字符之间")]
    public string TargetField { get; set; }
}

示例代码(拆分[MinLength]和[MaxLength]分别定义提示)

如果需要给最小、最大长度设置不同提示,可拆分属性:

[Required(ErrorMessage = "此字段不能为空")]
[MinLength(3, ErrorMessage = "输入内容不能少于3个字符")]
[MaxLength(50, ErrorMessage = "输入内容不能超过50个字符")]
public string TargetField { get; set; }

方法二:用资源文件统一管理提示(适配多语言场景)

如果需要统一维护所有验证提示或支持多语言,可通过资源文件实现:

  1. 在项目中添加资源文件(如ValidationResources.resx),添加对应键值对:

    • RequiredTip: 请填写此字段
    • MinLengthTip: 输入内容不能少于3个字符
    • MaxLengthTip: 输入内容不能超过50个字符
  2. 在模型属性中指定资源类型和对应键:

[Required(ErrorMessageResourceType = typeof(ValidationResources), ErrorMessageResourceName = "RequiredTip")]
[MinLength(3, ErrorMessageResourceType = typeof(ValidationResources), ErrorMessageResourceName = "MinLengthTip")]
[MaxLength(50, ErrorMessageResourceType = typeof(ValidationResources), ErrorMessageResourceName = "MaxLengthTip")]
public string TargetField { get; set; }

注意:确保客户端验证同步生效

如果项目启用客户端验证(默认开启),只需确保视图引入验证脚本,自定义提示会自动同步到前端:

<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>

内容的提问来源于stack exchange,提问作者FadoBagi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 23:50:31