Я пытаюсь создать HtmlHelper, который создаст поля формы, совместимые с Bootstrap. Моя первая цель состояла в том, чтобы создать HtmlHelper, который создаст окружающий div:
<div class="control-group"> ... </div>
Следуя отличным советам здесь, а также здесь, мне удалось заставить его работать относительно быстро. Но это не всегда работает.
У меня есть ViewModel со сложным свойством, поэтому в моей форме я обращаюсь к полю m=>m.Complex.Element
. В моем помощнике я проверяю элемент на ошибки проверки. Я использую ModelMetadata.FromLambdaExpression(expression, html.ViewData)
. Полученные метаданные имеют имя свойства Element
, а не Complex.Element
.
Когда я проверяю ModelState для этого свойства, я не могу его найти, потому что ModelState сохраняет полное имя - Complex.Element
.
Я могу найти частичные матчи, надеясь, что нет другого Элемента, но это похоже на неприятную ошибку, ожидающую своего появления. Как я могу получить полное имя свойства из выражения?