Ich versuche, einen HtmlHelper zu erstellen, der Bootstrap-kompatible Formularfelder erstellt. Mein erstes Ziel war es, ein Htmlhelper zu schaffen, die die umgebende div schaffen:Abrufen des vollständigen Eigenschaftsnamens mit ModelMetadata
<div class="control-group"> ... </div>
Nach der hervorragenden Beratung hier und auch hier habe ich es geschafft, um es relativ schnell zu arbeiten. Aber es funktioniert nicht immer.
Ich habe ein ViewModel mit einer komplexen Eigenschaft, so in meinem Formular Zugriff auf das Feld m=>m.Complex.Element
. In meinem Helfer überprüfe ich das Element auf Validierungsfehler. Ich benutze ModelMetadata.FromLambdaExpression(expression, html.ViewData)
. Die Metadaten, die ich zurückerhalte, haben den Eigenschaftsnamen Element
und nicht Complex.Element
.
Wenn ich den ModelState für diese Eigenschaft überprüfen, kann ich es nicht finden, weil der ModelState den vollständigen Namen behält - Complex.Element
.
Ich kann nach Teiltreffern suchen, in der Hoffnung, dass es kein anderes Element gibt, aber das scheint ein böser Bug zu sein, der darauf wartet, passiert zu sein. Wie kann ich den vollständigen Eigenschaftsnamen aus dem Ausdruck erhalten?
+1. Ich hatte auch dasselbe Problem. Deine Antwort hat mir geholfen :) –