In # MVC3 gibt es eine Möglichkeit, das HTML5-Platzhalterattribut mit einem DataAnnotations-Attribut hinzuzufügen?

8

das ist mein Modell

%Vor%

und das ist meine Ansicht

%Vor%

gibt es eine Möglichkeit, es zu rendern

%Vor%

Ich konnte es nicht funktionieren lassen, selbst wenn ich aus der Dokumentation Ссылка klar ersehen kann, dass die Display-Eingabeaufforderung den Job erledigen sollte

    
smnbss 16.06.2011, 16:10
quelle

6 Antworten

2

Ich kann nicht 100% ig sicher sein, aber es sieht so aus, als ob die Wasserzeichenmarkierung in den Metadatencode übergegangen ist (es gibt eine klare Standardmethode, um eine Zeichenkette zu definieren, die zu einer Eigenschaft passt), aber nicht der Ansichtscode dennoch eine universell unterstützte Möglichkeit, mit Wasserzeichen auf der Client-Seite umzugehen.

Wenn das manuelle Hinzufügen der Attribute nicht funktioniert, ist es wahrscheinlich die beste Option, einen neuen HTML-Helper Html5TextBoxFor zu erstellen und diesen anstelle des Standard-TextBoxFor zu verwenden.

Innerhalb dieses Helpers können Sie den Eingabeaufforderungstext mit ModelMetadata.FromLambdaExpression abrufen und anschließend TextBoxFor mit einem benutzerdefinierten HTML-Attributobjekt aufrufen, das aus den Metadaten generiert wurde.

    
Tom Clarkson 17.06.2011, 01:12
quelle
15
%Vor%     
Dennis Traub 16.06.2011 16:21
quelle
9

Ich brauchte diese genaue Funktionalität, aber ich wollte nicht herumgehen und alle meine EditorFor ändern, um etwas anderes zu sein (ich habe eine Menge Seiten:)).

Um dies zu erreichen, habe ich einfach ein EditorTemplate für String erstellt (Sie können dies für andere Typen tun, wenn Sie es brauchen).

Basierend auf meinen Modelleigenschaften, die ich DisplayName verwende, wie folgt:

%Vor%

Die Vorlage war einfach:

%Vor%

Und dann blieb mein Anrufcode genau gleich:

%Vor%

Außerdem können Sie dies für nicht-HTML5-Browser mit diesem exact -Code verwenden. Alles, was ich getan habe, war, einen Skriptverweis auf dieses großartige jQuery-Platzhalter-Plug-in und alle meine Platzhalter hinzuzufügen arbeite in IE6 (!!!!).

    
mattytommo 10.07.2013 22:38
quelle
1

Jedes HTML-Attribut in der Rasiereransicht kann zum HTML-Helfer hinzugefügt werden, indem Sie den Wert der Eigenschaft in @html.control mit dem Schlüsselwort new {} zuweisen und dann das Attribut definieren, indem Sie mit @ symbol beginnen Verwenden Sie ein reserviertes Schlüsselwort im Rasierer, das ein HTML-Attribut wie class darstellt. Sie müssen @ vor diesem Wort hinzufügen, genauso wie die Razor-Engine HTML-DOM-Elemente behandelt:

%Vor%     
Ashraf Abusada 22.08.2016 12:30
quelle
0

Sie können auch Ihre eigene HtmlHelper-Erweiterungsmethode erstellen, wie in diesem Artikel beschrieben: Ссылка

    
Christopher King 30.04.2013 18:32
quelle
0

Obwohl Sie das vielleicht nie wirklich tun, könnten Sie dies als Beweis für das Konzept tun:

Modell:

%Vor%

Anzeigen:

%Vor%     
Serj Sagan 30.10.2015 22:27
quelle