Legen Sie das Klassenattribut in ASP.NET MVC Razor View auf Html.EditorFor fest
Wie Sie wissen, wir können Attribute zu actionLink oder textBox in razor-Ansichten, aber wie können wir Attribute @Html.EditorFor
habe, kenne ich die "EditorFor" ist ein dynamisches element, das je nach Modell-Typ, aber allen Formen, dass kann erhalten der Attribute. So gibt es einen Weg, um das Attribut zu @Html.EditorFor
so etwas wie dieses: new {@class = "myclass"}
?
Kommentar zu dem Problem
Es gibt keine überlastungen für diese, daher können Sie nicht tun. Warum verwenden Sie nicht nur die eigentliche Art, die Sie möchten (z.B. TextBox) und übergeben es an, dass
InformationsquelleAutor der Frage Saeid | 2011-12-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
EditorFor
Helfer rendert das entsprechende editor-template. Es könnte sein, das Standardvorlage oder einige benutzerdefinierte Vorlage, die Sie schrieb. Diese Vorlage könnte jedes markup enthalten. Es könnte enthalten viele DOM-Elemente. So, jetzt verstehen Sie, dass Sie aufgefordert werden, die für die Anwendung eine Klasse eine Vorlage keinen Sinn. Um welches element auf dieser Vorlage, die Sie wollen, dass diese Klasse angewendet werden? Zum Beispiel mit der TextBoxFor Helfer wissen Sie, dass es generiert ein einzelnes Eingabefeld, so macht es Sinn zu reden, anwenden einer CSS-Klasse, um es (das ist genau das, was diehtmlAttributes
argument ermöglicht es Ihnen zu tun).Diesem wird gesagt, gibt es verschiedene Techniken. Zum Beispiel eine, die ich sehr mag, ist zum schreiben eines benutzerdefinierten data-annotations-Modell Metadaten-provider und benutzerdefinierten editor-Vorlagen wie in der folgenden blog-post.
Andere Möglichkeit ist das anpassen der Standard-templates (wie gezeigt, in der Brad Wilsons blog-Beitrag) und für die verschiedenen HTML-Attribute, um das entsprechende Eingabefeld ein. Nehmen wir ein Beispiel mit der string.cshtml-editor Vorlage:
Und jetzt, wenn Sie wollen, machen das editor-template für einige string-Eigenschaft auf Ihrem view-Modell:
InformationsquelleAutor der Antwort Darin Dimitrov
Versuchen Sie dies:
InformationsquelleAutor der Antwort 10gler
Fügen Sie benutzerdefinierte Attribute als
Ersetzen von Daten - zu @data_
Generiere korrektes html mit Daten-
InformationsquelleAutor der Antwort Kamran Qadir
Ich glaube, dass der original-poster richtig war
jeder
EditorFor()
erstellt eine main
HTML element
(obwohl es die anderen Anwesenden), so wäre es sehr hilfreich, in der Lage sein, um eine Objekt mitHTML attributes
zu gelten, dass die wichtigstenHTML element
.Ich möchte die
HTML 5
'Autofokus' Attribut eines Feld auf jeden form,aber ich will NICHT zu haben, benutzerdefinierten code zu schreiben.
Ich hasse die Tatsache, ich bin derzeit reduziert zu verwenden, z.B.
@Html.TextBoxFor()
für eine Feld gerade so, dass ich gezielt anzuwenden Attribute derinput element
.Den
EditorFor()
Methode hat einen parameter Sie nennenadditionalViewData
, aber ich habe keine Ahnung, was Sie tun können, mit, und Suche auf MSDN wurde nicht von jedem Hilfe für mich.InformationsquelleAutor der Antwort user1738579
Versuchen Sie diese einfachen code für das hinzufügen der Klasse
@Html.EditorFor()
dieser code funktioniert gut für MVC3 -
InformationsquelleAutor der Antwort Bilal