我正在尝试创建一个 HtmlHelper 来创建与 Bootstrap 兼容的表单字段。我的第一个目标是创建一个 HtmlHelper 来创建周围的 div:
<div class="control-group"> ... </div>
遵循这里和这里的优秀建议,我设法让它相对快速地工作。但它并不总是有效。
我有一个具有复杂属性的 ViewModel,所以在我的表单中我访问了 field m=>m.Complex.Element
。在我的助手中,我检查元素是否存在验证错误。我用ModelMetadata.FromLambdaExpression(expression, html.ViewData)
. 我得到的元数据有属性名称Element
,而不是Complex.Element
。
当我检查该属性的 ModelState 时,我找不到它,因为 ModelState 保留全名 - Complex.Element
。
我可以寻找部分匹配,希望没有其他元素,但这似乎是一个等待发生的讨厌的错误。如何从表达式中获取完整的属性名称?