Sto provando a creare un HtmlHelper che creerà campi di moduli compatibili con Bootstrap. Il mio primo obiettivo era quello di creare un HtmlHelper che creerà il div circostante:Ottenere il nome completo della proprietà usando ModelMetadata
<div class="control-group"> ... </div>
Seguendo i consigli eccellenti qui e anche qui sono riuscito a farlo funzionare in tempi relativamente brevi. Ma non sempre funziona.
Ho un ViewModel con una proprietà complessa, quindi nel mio modulo accedo al campo m=>m.Complex.Element
. Nel mio aiutante, controllo l'elemento per gli errori di convalida. Io uso ModelMetadata.FromLambdaExpression(expression, html.ViewData)
. I metadati che ottengo hanno il nome della proprietà Element
e non Complex.Element
.
Quando controllo il ModelState per questa proprietà, non riesco a trovarlo, perché ModelState mantiene il nome completo - Complex.Element
.
Posso cercare corrispondenze parziali, sperando che non ci siano altri elementi, ma sembra un brutto baco che aspetta di accadere. Come posso ottenere il nome completo della proprietà dall'espressione?
+1. Ho anche avuto lo stesso problema. La tua risposta mi ha aiutato :) –