Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在维护从ViewData检索值的同时为Html.TextBox帮助器指定属性?_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何在维护从ViewData检索值的同时为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帮助程序创建文本框。我想在文本框上设置属性,我知道这是使用以下重载完成的:

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"})