DisplayFormat nicht immer angewendet auf Dezimalwert
Habe ich ein Modell Eigenschaft, die ich versuche zu Rendern, mit einem "EditorFor" - Vorlage, und ich bin versucht zu formatieren mit dem DisplayFormat Attribut. Es ist jedoch überhaupt nicht-es ist völlig wird ignoriert.
Hier ist meine Vorlage:
@model System.Decimal?
@Html.TextBoxFor(m => m)
Hier ist mein Modell:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:0.00}")]
public decimal? Retail { get; set; }
Hier ist meine Ansicht:
@Html.EditorFor(m => m.Retail)
Aber es rendering eine textbox mit dem folgenden Wert:
189.9900
Es scheint ziemlich geradlinig, aber es funktioniert nicht, und ich habe keine Ahnung, warum.
UPDATE:
Nur für den Kick, versuchte ich es mit einer DisplayFor Vorlage, und es funktionierte:
@Html.DisplayFor(m => m.Retail)
Also warum sollte die DisplayFor Vorlage arbeiten, aber nicht die "EditorFor" Vorlage, wenn ich eingestellt habe ApplyFormatInEditMode
zu wahren?
UPDATE 2:
Egal, der Grund dafür, dass gearbeitet wird, weil meine Anzeige von Dezimalstellen Vorlage war hart-kodierten format, die Art und Weise. Also mein display template funktioniert auch nicht.
- Haben Sie versucht, die
@Html.EditorForModel()
im template? - Ja, das nur entfernt das Textfeld zusammen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Darin Dimitrov geschrieben diese Antwort, und ich war in der Lage, um es arbeiten über seine Lösung:
Ein wenig plump IMO, dass dies nicht funktionieren w/
TextBoxFor
, aber zumindest funktioniert es.DisplayFormat
wird nicht funktionieren, wie, dass; wenn Sie manuell erstellen Sie ein Textfeld für die Eigenschaft, die es nicht ins Spiel kommen. Es würde nur funktionieren, wenn Sie habenApplyFormatInEditMode
?Versuchen Sie es mit diesem format ist, gibt es 18.999,00
1899.9900
.