You need to enable JavaScript to run this app. ASP.NET Core MVC中MaxLength验证阻止输入超长度字符问题求助
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core MVC中MaxLength验证阻止输入超长度字符问题求助

问题原因

你遇到的问题本质是ASP.NET Core的输入Tag Helper默认行为导致的:当视图模型属性标注了[MaxLength]或[StringLength]特性时,Tag Helper会自动给对应的textarea/input元素添加原生HTML的maxlength属性。这个属性是浏览器原生控制的,会直接阻止用户输入超过长度限制的内容,自然不会触发jQuery Validation的错误提示。

解决方案

你只需要取消Tag Helper自动生成maxlength属性的行为即可,最简单的修改方式是调整contact.cshtml中的textarea代码:

<textarea rows="4" asp-for="Message" maxlength="@null"></textarea>

你给maxlength显式赋值为@null后,Tag Helper就不会自动生成原生的maxlength属性,浏览器也就不会限制输入长度。此时jQuery Validation绑定的maxlength验证规则仍会正常生效,完全符合你的预期:

  • 输入内容超过10个字符时可以继续输入,同时触发Too long!的错误提示
  • 删除内容到10个字符以内时,错误提示自动消失

补充说明

如果你使用[StringLength]替代[MaxLength],上述方案同样适用,两种特性都会触发Tag Helper自动生成maxlength属性,用同样的方式取消即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 19:54:04