我正在使用Html.TextBox助手来创建文本框。我想在文本框上设置属性,我理解这是使用以下重载完成的:
Html.TextBox (string name, object value, object htmlAttributes)
但是,我想维护HTML帮助程序自动使用ViewData或ViewData.Model中的值的功能,我没有看到只指定名称和htmlAttributes的方法。这可能吗?
答案 0 :(得分:60)
[编辑]在查看source code之后,您需要做的就是在签名中将值指定为null,该值采用name,value和htmlAttributes。如果该值为null,则它将尝试使用ViewData中的值。
Html.TextBox( "name", null, new { @class = "css-class" } );
答案 1 :(得分:8)
尝试剃刀
@Html.TextBox("name", "", new {@class = "css-class", @onclick = "alert('demo');"});
答案 2 :(得分:6)
如果您不需要提供模型中的值,您可以随时使用标准HTML:
<input type="text" name="fieldName" id="fieldName"/>
然后,您可以在标记中提供所需的任何属性。
答案 3 :(得分:2)
@Tvanfosson,谢谢你的回答。它今天给了我很多帮助。我试图为列表中的每个部分创建一个包含行的表。我想根据每个部分设置几个属性,你指出了我正确的方向。如果有人想看循环以及如何设置多个属性,请点击:
<% foreach (var poPart in Model.myPartsList)
{ %>
<tr>
<td>
<% var part = Model.PartID; %>
<%: Html.TextBox(part.ToString(), null, new { @class = "narrowText", @id = part.ToString() })%>
</td>
</tr>
<% } %>
答案 4 :(得分:0)
@Html.TextBox("Name", "Value", new {@class = "class1 class2", @customAttributeName = "attributeValue"})