尝试覆盖Html.TextBoxFor(MVC 3)的“id”属性,使其看起来像:
<input type="text" name="Password" id="@idPasswordTextBox" value="@Model.Password" />
其中“idPasswordTextBox”定义为:
string idPasswordTextBox = "passwordText_"+@Model.Key;
在同一个cshtml文件中。
如果我用作:
,这工作正常<input type="text" name="Password" id="@idPasswordTextBox" value="@Model.Password" />
但如果我这样做就不行了:
@Html.TextBoxFor(model => model.Password, new { id = "@idPasswordTextBox" })
看起来“id”属性搞砸了。我错过了什么?有人可以帮忙吗?我是ASP.net中的新蜜蜂。
提前致谢。
答案 0 :(得分:5)
对不起,我应该仔细看一下。您不希望TextBoxFor方法中的@idPasswordTextBox引用。这是在服务器上运行的,因此当您在名称周围加上引号时,它将被视为文字字符串。删除引号,并删除id前面的@符号,它将起作用。
重要的是要始终记住服务器上运行的内容以及客户端上运行的内容。
@Html.TextBoxFor(model => model.Password, new { id = @idPasswordTextBox })