2013-05-20 4 views
9

Ich muss CSS-Klasse und ID in @ Html.TextBox mvc4 zur gleichen Zeit hinzufügen. Ich versucheWie css Klasse und ID in @ Html.TextBox mvc4 zur gleichen Zeit hinzufügen

@Html.TextBox("name", new { id = "name"}, new { @class = "text-field" }) 

aber als Ergebnis, das ich bekommen

<input class="text-field" id="name" name="name" type="text" value="{ id = name }"> 

ich nicht hier Attributwert benötigen.
Ich brauche

<input type="text" value="" name="name" id="name" class="text-field" /> 

Antwort

18

Correct overload method

public static MvcHtmlString TextBox(
    this HtmlHelper htmlHelper, 
    string name, 
    Object value, 
    Object htmlAttributes 
) 

Sie id als HtmlAttribute verwenden möchten zu bekommen, so dass Sie es in Htmlattributes verwenden soll. Der korrekte Umgang mit TextBox ist:

@Html.TextBox("name", 
    null, 
    new { 
     id = "name", 
     @class = "text-field" 
}) 

wenn Sie id in Route Objekt platzieren, dann wird id eine Route Wert sein.

+0

Muss ich 'öffentliche statische MvcHtmlString TextBox' korrigieren? Woher? – Heidel

+0

Nein, der erste Codeblock ist die MVC-Textfeldelementmethode. Ich habe es dir geschrieben, um es dir zu zeigen. Du solltest verwenden, zweiten Codeblock ... –

+0

Danke, ich habe verstanden, es funktioniert! – Heidel

4

Versuchen

@Html.TextBox("name", 
    null, 
    new { 
     id = "name", 
     @class = "text-field" 
    }) 
+0

Ich habe versucht, aber ich habe '' – Heidel

+0

Fügen Sie den fehlenden zweiten Parameter hinzu, hatte die Dokumentation nicht zur Hand :) – Gorgsenegger

+0

Oh, ich sehe, danke! – Heidel

1

Ich verwende einfach das neue Schlüsselwort.

Zum Beispiel finden Sie in der folgenden Code
@Html.TextBoxFor(m => m.Venue, new { @class = "form-control", @id = "AnyCustomID" }) 
Verwandte Themen