从 MCV2 视图中的模型集合中读取 DataAnnotations

2024-01-14

在我的 MVC2 AdminArea 中,我想为每个域模型创建一个概述表。 我正在使用如下所示的 DataAnnotations 作为这些域模型对象的属性:

[DisplayName("MyPropertyName")]
public string Name { get; set; }

现在我的问题是:如果我的视图收到域模型的集合,如何访问 DisplayName 属性?我需要它来构建在通常情况之外定义的表头

<% foreach (var item in Model) { %>

环形。在这个循环中我可以写

<%: Html.LabelFor(c => item.Name) %>

但是有没有办法使用项目集合而不是具体实例来访问此信息?

提前致谢!


有一个ModelMetaData具有名为的静态方法的类FromLambdaExpression。如果您调用它并传递您的财产以及您的ViewData,它将返回一个实例ModelMetaData。那个班级有一个DisplayName应该可以满足您所需的财产。您还可以从此对象获取其他元数据信息。

例如,您可以创建一个空的ViewDataDictionary对象获取此信息。它可以为空,因为ModelMetaData实际上并不使用实例,它只需要泛型类来定义所使用的类型。

//This would typically be just your view model data.    
ViewDataDictionary<IEnumerable<Person>> data = new ViewDataDictionary<IEnumerable<Person>>();

ModelMetadata result = ModelMetadata.FromLambdaExpression(p => p.First().Name, data);
string displayName = result.DisplayName;

The First()即使您没有实际的方法调用也不会中断Person对象,因为 lambda 只是试图找到您想要元数据的属性。同样,您可以将其设置为单个Person object:

//This would typically be just your view model data.    
ViewDataDictionary<Person> data = new ViewDataDictionary<Person>();

ModelMetadata result = ModelMetadata.FromLambdaExpression(p => p.Name, data);

您可以使用帮助程序或扩展方法来显着清理它,但这应该会让您走上正确的道路。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 MCV2 视图中的模型集合中读取 DataAnnotations 的相关文章

  • Cocoa 自动布局约束 - 以编程方式填充可变数量的视图

    我希望能够向超级视图添加新视图 但使它们彼此之间保持恒定的垂直距离 为此 我尝试以编程方式为每个视图设置约束 但我不知道如何做到这一点 问题是我事先不知道视图的数量或相对位置 有没有一种方法可以以编程方式为每个视图设置约束 以便无论它们相邻
  • Ember 不更新模型更改的视图

    该小提琴重新创建了入门套件 并带有可更改模型的额外按钮 http jsfiddle net UjacC 1 http jsfiddle net UjacC 1 但是 当单击 更改 时 数组会更改 但视图不会更新 为什么
  • 如何对 Django 视图进行单元测试?

    我想开始将单元测试集成到我的 Django 项目中 并且我发现对视图进行单元测试很棘手 因为 Django 使用函数实现视图的方式 例如 如果函数有 URL 则每个函数都是 Django 中的视图 页面 如何对 Django 视图进行单元测
  • Objective-C 复制视图

    所以我在这里有一个简短的问题 我有一个视图控制器对象的实例 让我们调用它viewCon1 并且它上面放置了几个子视图 每个子视图都具有独特的属性 让我们称呼他们吧sub1 sub2 and sub3 现在 我以编程方式添加每个子视图 执行以
  • C# Asp.net Membership.GetAllUsers 通过电子邮件订购

    我正在使用 Membership GetAllUsers 来获取我的用户列表 我希望返回的列表按电子邮件地址排序 因为我需要标记一些具有重复电子邮件的帐户 Membership GetAllUsers 似乎默认按用户名排序 有办法改变这种行
  • 将数据传递给视图时,node ejs 引用错误数据未在 eval 处定义

    我已经接近使用express和ejs的节点应用程序 但是当我尝试将数据从控制器传递到我的视图时 如下所示 var myData theData data res render path join dirname views index my
  • 使用继承的 MVC2 DataAnnotations 验证

    我有一个 NET 2 0 类 其属性被标记为 virtual 我需要在 MVC2 应用程序中使用该类作为模型 因此 我创建了一个继承自 NET 2 0 类的 NET 3 5 类 并将 DataAnnotations 属性添加到新类中的重写属
  • 如何在视图中调用 Grails 服务?

    简单的问题 我有一个服务类 比方说helpersService 和一个方法def constructURI params 如何从模板视图调用此方法 我尝试了以下代码但没有成功 img src 但我得到以下结果 No signature of
  • ember js 子视图和 didinsertelement 事件

    我正在写一个Ember View 它将树结构变成菜单 我需要递归 所以我在视图模板中使用的是 view helper 它递归地调用自身来构建嵌套 ul li 结构 我需要的是一个钩子来调用一些 jQuery 插件来将此结构转换为菜单 当我从
  • 如何创建克隆重复视图?

    在我的 Android 应用程序中 我想创建重复的ImageButton已经创建的Imagebutton 我想创造新的Imagebutton以编程方式与 XML 文件中已创建的按钮具有相同的宽度 高度 背景 图像源 边距等 简而言之 我想创
  • 让按钮更容易点击

    我有一个按钮 在某些手机上由于尺寸太大而很难点击 但让它变大会破坏布局 可以向视图解释它有一个比其可见区域更大的 点击框 吗 不确定这是否有帮助 如果您使用没有背景的 ImageButton 并设置 Padding 值 您的按钮将具有更大的
  • 无论 DataAnnotations 属性如何,ModelState.IsValid 始终为 true

    我在 Visual Studio 2015 中使用新的 MVC6 框架 突然我所有的数据注释都停止工作 所有这些 无需我更改代码 public sealed class RegisterUser Required ErrorMessage
  • 如何对我的自定义验证属性进行单元测试

    我有一个自定义的 asp net mvc 类验证属性 我的问题是如何对其进行单元测试 测试类是否具有该属性是一回事 但这实际上并不能测试其中的逻辑 这就是我想测试的 Serializable EligabilityStudentDebtsA
  • Android View Canvas onDraw 未执行

    我目前正在开发一个自定义视图 它在画布上绘制一些图块 这些图块是从多个文件加载的 并将在需要时加载 它们将由 AsyncTask 加载 如果它们已经加载 它们只会被绘制在画布上 这工作正常 如果加载了这些图片 AsyncTask 就会触发v
  • Asp.net mvc 重写基本控制器中的 OnException 不断传播到 Application_Error

    我试图返回一个视图 而不是根据我的应用程序可能发生的某些错误向用户发出重定向 我想处理错误 将它们记录在我的基本控制器中 我不希望错误传播到我的Global asax Application Error 方法 因为我希望此方法处理我的应用程
  • Android:我可以创建一个不是矩形的视图/画布吗?圆形的?

    我有一个圆形视图 悬停在主要内容上方 gt 从屏幕出来的 z 轴方向 当有人点击屏幕时 我希望选择主要内容或悬停在上方的视图 当它覆盖主视图时 到目前为止效果很好 我在透明画布上有一个圆形物品 这意味着您可以看到该圆圈之外的背景的所有内容
  • 日期时间数据注释在 ASP.NET Core RC2 应用程序中不起作用

    如果我向 ViewModel 添加数据注释 则 DateTime 字段的值始终为 1 1 0001 12 00 00 AM 视图模型 public class EditReleaseViewModel BaseViewModel Displ
  • Rails:使最终用户可以编辑视图?

    无论如何 我可以使最终用户可以编辑 Rails 视图中的内容吗 这样他们就可以在我允许的页面上进行简单的文本更改 而无需我自己编辑 HAML 文件 想法 澄清 我了解 CMS 系统 但我认为这并不完全是我想要的 我想保持对视图的编程控制 但
  • 无法禁用 jQuery 缓存

    Update 我发现这一定是缓存问题 但我无法关闭缓存 这是我更改后的脚本
  • nginx/mono 2.8 上的 ASP.Net MVC 2

    我正在尝试在 Linux 环境上设置 ASP Net MVC 2 应用程序 我在 VirtualBox 上安装了 Ubuntu 10 10 然后从源安装了 Mono 2 8 之后我安装了 nginx 并按照建议进行配置here http w

随机推荐

  • 禁用 JSHint 警告:需要赋值或函数调用,但看到的是表达式 [重复]

    这个问题在这里已经有答案了 我有以下几行 imageUrl data imageUrl imageUrl 对于这一行 JSHint 抱怨道 Expected an assignment or function call and instea
  • 在非管理员用户下从远程运行 PS cmdlet - 访问被拒绝

    我正在尝试通过 Invoke Command 远程运行 Get ScheduledTask 该用户是非管理员 但属于 远程管理用户 的一部分 PS 远程处理工作正常 在本地运行命令效果很好 但是通过 Invoke Command 运行它会出
  • FSM actor 在转到相同状态后不会触发 onTransition

    根据Akka FSM 文档 http doc akka io docs akka snapshot scala fsm html 笔记 可以使用 goto S 或stay 实现相同状态转换 当前处于状态 S 时 它们之间的区别在于 goto
  • Osmdroid - 自定义离线图块源更改位置

    我使用此代码来显示离线 Osmdroid 地图图块 问题是 我已将图块存储在位置 sdcard emulated0 0 中 有什么方法可以将它传递到 XYTileSource 中吗 Thx myMapView setTileSource n
  • jQuery iframe 模式关闭表单提交

    我有一个 jQuery 模态对话框 其中包含一个 iframe 该 iframe 包含一个表单 当用户提交表单时 我想关闭模式对话框 我怎样才能做到这一点 index php 上的 jquery 模态脚本
  • 如何修复客户端首选项不接受服务器选择的协议版本 TLS10 [TLS12]

    我想使用 sql server 数据库运行 spring boot 应用程序 但是当我运行它时 出现以下错误 com microsoft sqlserver jdbc SQLServerException The driver could
  • Webstorm 6 - 如何使 scss 文件观察器忽略文件

    我希望 SCSS 文件的文件观察器忽略文件名以下划线开头的文件 例如 buttons scss 我该怎么做呢 首先向您想要忽略的文件添加 完成 来自文档 http sass lang com docs yardoc file SASS RE
  • 尝试设置 Laravel 4 给出“无法打开流:没有这样的文件或目录”

    尝试在 Mac 上设置 Laravel 4 我已经安装了 Composer 但是当我通过 XAMPP 进入公共文件夹时 我得到以下信息 警告 require Applications XAMPP xamppfiles htdocs lara
  • 在 Python 脚本中使用 FFProbe

    我对 python 相当陌生 这是我的第一个真正的项目 我遇到了障碍 我这里有一个 wmv 文件 我使用 FFprobe 从 wmv 文件中提取持续时间 以秒为单位 当我在 CMD 中运行以下命令时 ffprobe i Video2 wmv
  • 多对多关联。数据不删除

    我有这个模型 Entity Table name candidate XmlRootElement name candidate public class Candidate ManyToMany mappedBy candidates f
  • 同一个构造函数是否可以有不同的行为?

    我正在写一个 SQL 解释器 我需要区分编译时格式错误的表达式和运行时错误 我将给您提供一个应该格式良好但可能在运行时失败的示例 SELECT ColumnName first name AS name FROM TABLE people
  • 将 OpenXML 中的文本支架替换为图像

    下面的代码使用 OpenXML 在 word 文档的末尾插入图像 我需要做的是尝试在文档中找到名为 Image Holder 的项目 并将其替换为我传递的图像 这是将其添加到文档末尾的当前代码 var element new Drawing
  • Salt Generation 和开源软件

    据我了解 生成盐的最佳实践是使用源代码中存储的一些神秘公式 甚至魔术常数 我正在开发一个计划作为开源发布的项目 但问题是源代码带来了生成盐的秘密公式 因此能够在我们的网站上运行彩虹表攻击 我认为很多人在我之前已经考虑过这个问题 我想知道最佳
  • 如何在Android应用程序中创建进度对话框?

    我正在开发应用程序以从互联网接收一些数据 同时接收我想要显示 进度对话框 的数据 我用了 异步任务 在我的应用程序中 问题是如何使用它以及如何显示百分比 如 100 请建议我并给我一些例子 谢谢你 对不起我的英语 要显示进度对话框 您可以使
  • 使用matlab保存函数

    是否可以在函数内使用 Matlab save 命令来存储工作区变量 考虑以下场景 我在 Matlab 工作区中有一堆变量 并且希望 mat 文件中所有以 a 和 b 开头的变量 当然这有效 save test mat a b 但我想要一个可
  • Vuejs:渲染后回调

    我有一个 Bootstrap 弹出窗口 我想将其附加到具有条件渲染的元素 因此 我必须在元素附加到 DOM 后触发 popover 有没有办法触发回调afterv if 语句将元素插入到 DOM 中 在 vuejs 2 中使用它 updat
  • 查找列表中 int 的索引

    有没有办法从列表中获取 int 的索引 寻找类似的东西list1 FindIndex 5 我想在列表中找到 5 的位置 Use the IndexOf 列表的方法 该方法的规范可以在MSDN http msdn microsoft com
  • Polars:在 read_csv 中一次指定所有列的数据类型

    In Polars https www pola rs 如何为中的所有列指定单一数据类型read csv 根据docs https pola rs github io polars py polars html reference api
  • Google 地图 API autocomplete.getPlace() 返回的几何图形不一致

    我在 AngularJS 应用程序中使用 GoogleMaps 自动完成功能 当我调用 autocomplete getPlace 当我尝试使用地方时 有一半的时间它说几何图形为空 一半的时间都有效 似乎无法弄清楚 我唯一的想法是我的代码在
  • 从 MCV2 视图中的模型集合中读取 DataAnnotations

    在我的 MVC2 AdminArea 中 我想为每个域模型创建一个概述表 我正在使用如下所示的 DataAnnotations 作为这些域模型对象的属性 DisplayName MyPropertyName public string Na