使用Html.TextBoxFor时,将模型的名称添加为id的前缀

Kob*_*obi 12 model-view-controller html-helper asp.net-mvc-3

当我使用时,我有一个asp mvc 3项目

@Html.TextBoxFor(model => model.Name)
Run Code Online (Sandbox Code Playgroud)

TexBoxFor渲染为

<input id="Name" name="Name" type="text" value="" />
Run Code Online (Sandbox Code Playgroud)

我的模型是"UserModel":

[DisplayName("Name")]
public string Name{ get; set; }
Run Code Online (Sandbox Code Playgroud)

有没有办法在模型中添加模型名称作为前缀?也许有些属性?

我希望文本框呈现为

<input id="UserName" name="UserName" type="text" value="" />
Run Code Online (Sandbox Code Playgroud)

u_1*_*148 11

@Html.TextBoxFor(model => model.attr, new { Name = "txt1" })
Run Code Online (Sandbox Code Playgroud)

只需使用"名称"而不是"名称"

  • -1:这将产生两个名为name的属性:Name ="txt1"和name ="attr".它在Firefox中有效,因为浏览器会忽略第二个名称属性.但这实际上是一个拙劣的问题. (2认同)

Had*_*das -2

你可以写:

@Html.TextBoxFor(model => model.Name, new { @id= "UserName",@Name="UserName" })
Run Code Online (Sandbox Code Playgroud)

  • 那是完全错误的!当您使用像“TextBoxFor”这样的 html 帮助器时,您不能覆盖“name”属性。顺便说一句,仅供参考,您不需要“@”转义字符。您可以将“@”转义字符与特殊的 C# 关键字(例如“class”)一起使用。 (2认同)