尝试覆盖 Html.TextBoxFor (MVC 3) 的“id”属性,使其看起来像:
<input type="text" name="Password" id="@idPasswordTextBox" value="@Model.Password" />
其中“idPasswordTextBox”定义为:
string idPasswordTextBox = "passwordText_"+@Model.Key;
在同一个 cshtml 文件中。
如果我使用 as 就可以正常工作:
<input type="text" name="Password" id="@idPasswordTextBox" value="@Model.Password" />
但如果我这样做就不起作用:
@Html.TextBoxFor(model => model.Password, new { id = "@idPasswordTextBox" })
看起来“id”属性被搞乱了。我错过了什么?有人可以帮忙吗?我是 ASP.net 的新蜜蜂。
提前致谢。
最佳答案
对不起,我应该更仔细地看。您不希望在 TextBoxFor 方法中使用 @idPasswordTextBox 周围的引号。它在服务器上运行,因此当您在名称周围加上引号时,它会被视为文字字符串。去掉引号,去掉id前面的@,就可以了。
重要的是要始终记住服务器上运行的内容以及客户端上运行的内容。
@Html.TextBoxFor(model => model.Password, new { id = @idPasswordTextBox })
关于html - 覆盖 Html.EditorFor 的 "id"属性 - 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7274523/