gpt4 book ai didi

c# - 使用 ModelMetadata 获取完整的属性名称

转载 作者:可可西里 更新时间:2023-11-01 08:01:03 25 4
gpt4 key购买 nike

我正在尝试创建一个 HtmlHelper,它将创建与 Bootstrap 兼容的表单字段。我的第一个目标是创建一个将创建周围 div 的 HtmlHelper:

<div class="control-group"> ... </div>

遵循这里和这里的优秀建议,我设法让它相对快速地工作。但它并不总是有效。

我有一个具有复杂属性的 ViewModel,因此在我的表单中我访问了字段 m=>m.Complex.Element 。在我的助手中,我检查元素是否存在验证错误。我使用 ModelMetadata.FromLambdaExpression(expression, html.ViewData) 。我取回的元数据具有属性名称 Element,而不是 Complex.Element

当我检查此属性的 ModelState 时,我找不到它,因为 ModelState 保留全名 - Complex.Element

我可以寻找部分匹配项,希望没有其他元素,但这似乎是一个等待发生的讨厌错误。如何从表达式中获取完整的属性名称?

最佳答案

MVC 源代码公开是一件好事。获取 ModelState 属性名称的正确方法是使用

var propertyName = ExpressionHelper.GetExpressionText(expression);

关于c# - 使用 ModelMetadata 获取完整的属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com