Asp.net mvc 如何在维护从ViewData检索值的同时为Html.TextBox帮助器指定属性?
我正在使用Html.TextBox帮助程序创建文本框。我想在文本框上设置属性,我知道这是使用以下重载完成的:Asp.net mvc 如何在维护从ViewData检索值的同时为Html.TextBox帮助器指定属性?,asp.net-mvc,Asp.net Mvc,我正在使用Html.TextBox帮助程序创建文本框。我想在文本框上设置属性,我知道这是使用以下重载完成的: Html.TextBox(字符串名称、对象值、对象htmlAttributes) 但是,我希望维护HTML助手自动使用ViewData或ViewData.Model中的值的功能,我看不到只指定名称和htmlAttributes的方法。这可能吗?[EDIT]查看后,您需要做的似乎是在签名中指定值为null,该签名包含名称、值和htmlAttributes。如果该值为null,它将尝试使用V
Html.TextBox(字符串名称、对象值、对象htmlAttributes)
但是,我希望维护HTML助手自动使用ViewData或ViewData.Model中的值的功能,我看不到只指定名称和htmlAttributes的方法。这可能吗?[EDIT]查看后,您需要做的似乎是在签名中指定值为null,该签名包含名称、值和htmlAttributes。如果该值为null,它将尝试使用ViewData中的值
Html.TextBox( "name", null, new { @class = "css-class" } );
如果您不需要从模型中提供值,则始终可以使用标准HTML:
<input type="text" name="fieldName" id="fieldName"/>
然后,您可以在标签中提供所需的任何属性。@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>
<% } %>
试试这个剃须刀
@Html.TextBox("name", "", new {@class = "css-class", @onclick = "alert('demo');"});
尽管本准则可以回答这个问题,但提供关于为什么和/或如何回答这个问题的额外上下文将显著提高其长期价值。请您的答案添加一些解释。在@Html.TextBox中添加自定义属性就是一个例子
@Html.TextBox("Name", "Value", new {@class = "class1 class2", @customAttributeName = "attributeValue"})