asp.net-mvc - example - asp.net mvc tutorial



Wie kann ich Attribute für einen Html.TextBox-Helper angeben, während der Wert aus ViewData abgerufen wird? (4)

Wenn Sie den Wert aus Ihrem Modell nicht angeben müssen, können Sie immer nur den Standard-HTML-Code verwenden:

<input type="text" name="fieldName" id="fieldName"/>

Dann können Sie alle Attribute angeben, die Sie im Tag benötigen.

Ich verwende den Html.TextBox-Helfer, um Textfelder zu erstellen. Ich möchte Attribute für das Textfeld festlegen, was ich mit der folgenden Überladung begreife:

Html.TextBox (string name, object value, object htmlAttributes)

Ich möchte jedoch die Funktionalität beibehalten, bei der der HTML-Helfer automatisch den Wert von ViewData oder ViewData.Model verwendet und ich sehe keine Möglichkeit, nur den Namen und die htmlAttributes anzugeben. Ist das möglich?


Answer #1

@Tvanfosson, danke für die Antwort. Es hat mir heute sehr geholfen. Ich habe versucht, eine Tabelle mit einer Zeile für jedes Teil in einer Liste zu erstellen. Ich wollte verschiedene Attribute für jeden Teil festlegen, und Sie haben mich in die richtige Richtung gelenkt. Falls jemand die Schleife sehen möchte und wie man mehrere Attribute setzt, geht es hier:

    <% 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>
   <% } %>

Answer #2

versuchen Sie dies für Rasiermesser

@Html.TextBox("name", "", new {@class = "css-class", @onclick = "alert('demo');"});

Answer #3
 @Html.TextBox("Name", "Value", new {@class = "class1 class2", @customAttributeName = "attributeValue"})




asp.net-mvc