Wenn Sie ein benutzerdefiniertes DisplayTemplate definiert haben, gibt es eine Möglichkeit, die für dieses Objekt definierte DisplayFormat.DataFormatString
zu verwenden?Verwenden Sie DisplayFormat in einem benutzerdefinierten DisplayTemplate
Zum Beispiel habe ich eine DisplayTemplate für Double
definiert haben:
<div class="form-group">
@Html.Label("", ViewData["label"] as string, new { @class = "col-sm-6" })
<p class="col-sm-6">
@Html.DisplayTextFor(m => m)
</p>
</div>
Dann definiert mein Modell ein Displayformat:
[Display(Name = "In Weight")]
[DisplayFormat(DataFormatString = "{0} lb")]
public double? InWeight{ get; set; }
Im obigen Beispiel stellt DisplayTextFor
nur eine einfache ToString() , während es durch DisplayFor
ersetzt wird, macht nichts.
einschließlich dieses weiter verbessern Warum Sie verwenden '@ Html.Label()', wenn Sie Formular-Steuerelement nicht ein zugehöriges haben . Der Grund dafür, dass 'DisplayFor()' nicht funktioniert, ist, dass es sich selbst weiterhin aufruft. Sie könnten auf die Eigenschaften 'ModelMetadata' zugreifen, um den formatierten Wert –
@StephenMuecke zu generieren. Sie haben recht, wahrscheinlich ist es besser, in diesem Fall eine' dl'-Beschreibungsliste zu verwenden, aber die Frage wäre die gleiche für die Formatierung des Wertes. –