Datenattribute mit HTML-Editor für mvc

9

Datenattribute für den Editor, weil er nicht funktioniert.

%Vor%

Wenn ich meinen Chrome Browser öffne, kann ich kein Datenattribut für mein Textfeld sehen. Ich habe versucht zu glotzen und habe nichts sinnvolles gefunden.

    
Shanker Paudel 11.08.2013, 22:27
quelle

2 Antworten

11

Der zweite object -Parameter für Html.EditorFor ist nicht für HTML-Attribute, sondern für zusätzliche Ansichtsdaten. Die EditorFor Helfer erlauben keine Anpassung von HTML-Attributen in der Art, dass z. Je spezifischer <input> Helfer sind - sie nehmen den größten Teil ihres Setups aus den Modellmetadaten (zB [Attributes] ).

Der einfachste Weg zum "Reparieren" ist das Löschen von EditorFor :

%Vor%

Alternativ schreiben Sie Ihre eigene EditorTemplate für die Eigenschaft. Dies könnte es Ihnen ermöglichen, Ihre ursprüngliche Syntax zu verwenden (oder zu vereinfachen), indem Sie den Wert data_typeahead von ViewData["data_typeahead"] (oder "typahead") abrufen.

Ein Schritt weiter, weiter fortgeschritten, könntest du dein eigenes Attribute auf deine Modelleigenschaften anwenden + dein eigenes ModelMetadataProvider (oder - einfacher - verwende IMetadataAware , mehr dazu unten), um es in Metadaten umzuwandeln die der EditorTemplate verwenden könnte - um die Entscheidung über data- -Attribute vollständig aus Ihrer Ansicht zu entfernen, indem Sie Ihren Aufruf in:

umwandeln %Vor%

... und dein Modell in etwas wie:

%Vor%

Beispiel für diesen Ansatz mit IMetadataAware

    
JimmiTh 11.08.2013, 22:48
quelle
14

Tatsächlich können Sie EditorFor verwenden und zusätzliche HTML-Attribute senden. Verwenden Sie diese Überladung und legen Sie die additionalViewData -Parameter fest. Es erwartet ein Objekt mit einer Eigenschaft htmlAttributes :

%Vor%

Dies erzeugt etwas wie:

%Vor%     
Marcos Dimitrio 13.10.2015 19:20
quelle

Tags und Links