DisplayAttribute.GroupName 属性的用途是什么?

Jak*_*cki 5 data-annotations asp.net-mvc-3

我试图找出DisplayAttribute.GroupName属性的有效用法。

MSDN 说:

用于对 UI 中的字段进行分组的值。

但我不会称其为全面的解释。这让我觉得 GroupName 可以用来围绕某些字段创建组框。但接下来的评论是:

不要使用此属性来获取 GroupName 属性的值。使用获取描述方法。null 值或空字符串是有效的。

似乎矛盾。

那么这个属性的用途是什么?我应该使用它(可能与自定义模板或自定义 ModelMetadataProvider 一起使用)以便在我的字段周围呈现组框吗?

Tz_*_*Tz_ 1

在MVC RTM源代码中没有使用的迹象。

“GetDescription”注释可能是文档中的复制/粘贴错误(每个字符串属性似乎都有一个返回可本地化值的 GetXXX 对应项),因此在本例中它很可能是“GetGroupName”。

更新:我会准确地使用它:将从 UI 角度来看属于在一起的字段分组在一起。由于这只是模型上的数据注释,它仅声明这些字段“以某种方式”属于 UI 上的一个逻辑组,但具体的表示细节取决于基于元数据显示模型的“UI 引擎”。我认为在 UI 上“渲染”此内容的最有意义的方法正是您所说的:将分组的字段包装到一个部分或字段集中。

当然,MVC 的未来扩展或其他自定义扩展可能会基于此属性“自动”在 UI 上进行某种分组(无需编写检查元数据并生成部分的自定义代码)。但我非常确定这样的扩展会执行与您当前执行的操作非常相似的操作。