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

使用autocomplete='one-time-code'时asp-for属性被覆盖的问题咨询

问题:asp-for与autocomplete='one-time-code'共存时模型绑定失效

在ASP.NET项目中,给表单输入控件同时设置asp-for(用于建立控件与模型属性的绑定关系)和autocomplete='one-time-code'(用于启用一次性验证码自动填充)时,会出现异常行为:asp-for的绑定关系被忽略,表单输入无法与对应模型属性同步,推测是autocomplete属性的处理优先级更高,干扰了asp-for的绑定逻辑。

原因分析

asp-for作为ASP.NET Tag Helper的核心属性,会自动生成控件的name、id等关键属性——这些是模型绑定的基础。而autocomplete='one-time-code'属于特殊的HTML自动填充属性,部分场景下Tag Helper的属性处理逻辑会因该属性的存在,覆盖或跳过asp-for生成的绑定属性,导致模型绑定失效。

解决方案

1. 手动补充绑定所需属性

保留asp-for的同时,手动指定与模型属性名一致的name和id属性,确保绑定逻辑不受影响:

<input asp-for="VerificationCode" id="VerificationCode" name="VerificationCode" autocomplete="one-time-code" />

2. 使用HtmlHelper替代Tag Helper

改用Html.TextBoxFor方法生成控件,该方法的属性处理逻辑更稳定,不会与autocomplete='one-time-code'产生冲突:

@Html.TextBoxFor(m => m.VerificationCode, new { autocomplete = "one-time-code" })

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:13:14