asp.net-mvc - 是否可以将 LabelFor 用于索引 View 中的标题行

标签 asp.net-mvc data-annotations

我正在尝试利用 ASP.NET MVC 索引 View 中的 DataAnnotation 值。有趣的是,代码生成器使用字段名称(例如,BlogPost)而不是 Html.LabelFor(m => Model.ColumNames["BlogPost"])或类似的东西(我编的)。

这是否意味着,如果模型是 IEnumerable(如在索引 View 中),那么就不可能获得由 DataAnnotation 指定的显示名称?难以置信...

我的代码目前是 MVC 2 和 MVC 3 的混合体,如果有什么不同的话。

最佳答案

至少,您应该能够通过使用部分 View (WebForms 的 ascx)或显示/编辑器模板来获得所需的内容。在您的索引页面中,您可以遍历您的可枚举项并将项目传递到局部 View 或模板中。

可能有一种方法可以不必按照我的建议去做(我很想看到答案),但是我建议的应该可以正常工作。

编辑:

经过一些澄清,这是我更新的答案。

您仍然可以获得属性的标签,同时仍然遵守 DisplayAttribute在数据注释中。我很快就尝试了这个,它似乎工作正常。

在我看来,我有以下几点:

Html.LabelFor(m => m.BlogPosts.First().BlogPostTitle)

即使枚举本身没有项目,这也有效。当我第一次测试时,我得到了属性名称,然后我添加了用 DisplayAttribute 装饰的属性。并且显示了 name 属性的值而不是标准属性名称。

关于asp.net-mvc - 是否可以将 LabelFor 用于索引 View 中的标题行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4709367/

相关文章:

jquery - 通过 AJAX 请求执行操作 DNN MVC

c# - 重定向到操作并传递引用类型

c# - 自定义 ViewModel 类 - 除非指定前缀,否则并非所有字段都标记为无效

c# - 在 CustomValidation 中返回一个复杂对象而不是 ValidationResult

c# - 创建一个匿名对象,该对象必须在 Key 名称中包含点并将其放入另一个匿名对象中

asp.net - 如何在MVC4的局部 View 中添加脚本?

c# - 如何使用 asp.net mvc 在模态中插入 json 消息

c# - 继承的类属性 `DisplayAttribute` 没有被覆盖?

c# - 在 MVC 之外使用 ASP.Net MVC 数据注释

asp.net-core - 如果我们仅更改数据注释的 Display 属性,是否还需要运行 Add-Migration