求助:为@Html.TextBoxFor添加readonly属性失效的问题
解决@Html.TextBoxFor readonly属性不生效的问题
首先看你提供的代码,匿名对象的属性之间缺少逗号分隔,这是导致属性无法正确渲染的直接原因,修正后的代码如下:
@Html.TextBoxFor(m => m.Test.ClientNumber, new { readonly = "readonly", @name = "client", @id="validate", @class = "form-control" })
注意补充了@name = "client"、@id="validate"后面的逗号——C#匿名对象的每个键值对必须用逗号分隔,之前的写法会导致编译错误,Razor引擎无法正确解析这个匿名对象,自然readonly属性不会被输出到最终的HTML中。
如果修正语法后问题仍存在,检查以下两点:
- 查看页面渲染后的HTML源码,确认
<input>标签是否存在readonly="readonly"属性,若不存在,排查是否有其他Razor逻辑覆盖了该属性 - 检查是否有JavaScript代码在页面加载后动态移除了readonly属性,比如通过
element.removeAttribute('readonly')或element.readonly = false这类操作
内容的提问来源于stack exchange,提问作者Queen Mochi
相关产品推荐
相关产品推荐

