Html.TextBoxFormatierung oder Html.EditorFor htmlAttributes?
Bin ich irgendwie ratlos, weil ich formatieren will den Wert und fügen Sie ein html-Attribut für die css-Klasse.
Wenn ich @Html.TextBoxFor(m => m.DateModified)
- Ich kann hinzufügen, html-Attribut, aber die Formatierung funktioniert nicht über DisplayFormat Attribut auf das Element.
Wenn ich @Html.EditorFor(m => m.DateModified)
- Formatieren funktioniert, aber ich kann nicht fügen Sie html-Attribut
Wenn ich @Html.TextBox("DateModified", Model.DateModified, ...)
- Ich bekomme null-Verweis-Ausnahme beim Modell ist null, wenn das Formular im hinzufügen-Modus
Was ist der beste Weg, dies zu erreichen?
InformationsquelleAutor der Frage lahsrah | 2011-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Landete ich die Lösung dieses durch die Erstellung einer benutzerdefinierten editor-Vorlage für meine Datumsauswahl-wie so:
Shared/EditorTemplates/DateTime.cshtml
Dann in meine original-Seite weiter nutzen
InformationsquelleAutor der Antwort lahsrah
Könnten Sie...
InformationsquelleAutor der Antwort ctorx
@Html."EditorFor" (m => m ist.DateModified), da sonst die DisplayFormat Attribut keine Auswirkungen.
Hinzufügen von weiteren Attributen, wie eine CSS-Klasse, die Sie haben, um ein editor-template für die DateTime.
Erstellen Sie eine Datei EditorTemplates/DateTime.cshtml mit folgendem Inhalt:
Bitte beachten Sie, dass der Wert der TextBox wird nicht mit dem Modell direkt, sondern eher mit der TemplateInfo.FormattedModelValueweil dieser Wert wird formatiert nach dem DisplayFormat Attribut, während das Modell nicht. (Dies hat mich einige Zeit zu erkennen. :))
In einfachen Fällen kann dies ausreichend sein, wenn sich z.B. die CSS-Klasse für alle das gleiche Datum Editoren.
Wenn Sie wollen einstellen das Attribut können Sie das auch tun, übergeben Sie die Attribut-Wert-parameter an die "EditorFor".
Jedoch, dieser parameter wird nicht automatisch an die HTML-control als Attribut, aber Sie haben zu behandeln es" in der Vorlage ausdrücklich. Nach meinen Erfahrungen können Sie diesen Parameterwert im ViewData in der Vorlage, so dass die parametrisierten Vorlage sieht wie folgt aus:
InformationsquelleAutor der Antwort Tz_
Um zu verhindern, dass hartzucodieren die Schlüssel/Wert-Paare aufgeführt, die in "EditorFor", konvertieren Sie das ViewData Objekt in ein Dictionary und übergeben Sie die dictionary-Objekt an die TextBox.
zB
Und in der Vorlage, die Sie haben
InformationsquelleAutor der Antwort scarter
Zeigen json-Datum in textbox (cshtml):
InformationsquelleAutor der Antwort Mahesh