问题标签 [modelmetadata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2605 浏览

asp.net - HiddenInput 的 Asp.Net MVC ModedMetadata 问题

我在 dll 中有一个非常简单的视图模型,我想将它与主 web mvc 项目分开。

我正在用元数据属性装饰模型,这将有助于 ui 显示正确的表示形式(DisplayName、UIHint、DataType、ReadOnly 等),我想稍后在不同的表示层中重用这些信息(如 Silverlight)

大多数属性来自命名空间 System.ComponentModel.DataAnnotations 但我惊讶地发现HiddenInput是一个例外,我需要在我的视图模型 dll 中添加对 System.Web.Mvc 的引用。

是否有特别的理由不将其包含在其他属性中?

我试图覆盖将 HiddenInput.ascx 放在 editortemplates 文件夹中的默认行为,但是当我在视图中调用 html.EditorfForModel() 时,我仍然得到该字段的标签。

0 投票
1 回答
2464 浏览

asp.net-mvc - expression.Compile() 与 ModelMetadata.FromLambdaExpression

编写强类型的 Html 助手有一个常见问题。问题是如何检索属性名称/值对。假设我们有以下 Html 助手声明:

我找到了几种解决方案:1。

2.

3. 仅使用 MemberExpression 获取成员名称

从第一眼看,它们都有不同的实现(使用反射器进行调查),但我没有深入研究。

我坚持了很多解决问题的方法,想知道哪种解决方案更适合不同的情况,为什么?

我将不胜感激任何帮助

0 投票
5 回答
2376 浏览

asp.net-mvc-3 - MVC2 - 如何在模板中获取父模型(容器)

我正在使用 DataAnnotations 编写一个 MVC2 应用程序。我有以下模型:

我想为 Bar 创建一个自定义显示模板。我创建了以下模板:

现在,我的问题是Bar 的内部模板我想从我的 model 访问另一个属性。我不想为 FooModel 创建单独的模板,因为我将不得不对所有其他 FooModel 属性进行硬编码。

在使用调试器进行简短调查后,我可以看到:

  1. this.ViewData.ModelMetadata.ContainerTypeFooModel(如预期的那样)
  2. this.ViewData.TemplateInfo有一个非公共属性VisitedObjects (类型为 System.Collections.Generic.HashSet<object>),其中包含两个元素: FooModelDateTime?

如何访问我的 FooModel?我不想使用反射来破解我的方式。

更新:

我已经接受了 mootinator 的回答,因为它在我看来是允许类型安全的最佳解决方案。我也赞成 Tx3 的答案,因为 mootinator 的答案建立在它之上。尽管如此,我认为在这些场景中应该有更好的 MVC 支持,我认为这在现实世界中很常见,但在示例应用程序中却没有。

0 投票
1 回答
721 浏览

asp.net-mvc - 字符串长度属性

我正在使用 Asp.Net MVC 2,并尝试遍历元数据以将输入控件添加到网格列。大多数属性(如 DisplayAttribute、StringLength 属性等)不会由默认模型元数据提供程序填充。

1-我认为这些属性将在 MVC3 中得到支持,对吧?

2- 在 MVC3 推出之前,我是否可以使用自定义提供程序,我记得看到一个自定义元数据提供程序(以为它在 MVCContrib 中)但在那里找不到,有人知道在哪里可以找到支持此属性的元数据提供程序吗?

0 投票
1 回答
3593 浏览

asp.net - ASP.NET MVC 自定义 ModelMetadataProvider 和 ModelValidatorProvider

在我的 ASP.NET MVC 应用程序中,我在数据库中定义了基于元数据的模型。我有一个定义数据元数据的自定义对象,并将数据集用于 DTO。为了显示这一点,我打算编写一个自定义 ModelMetadataProvider 和 ModelValidatorProvider。

这是正确的方法吗?

关于自定义 ModelMetadataProvider 和 ModelValidatorProvider 的任何指针?

0 投票
2 回答
4202 浏览

asp.net-mvc - MVC ModelMetaData 属性和格式化日期的问题

我试图弄清楚如何使用 MVC3 RC2 和用 DataAnnotations 装饰的模型来格式化日期。

这是我的模型...

这是我的控制器...

这是我的看法...

当我运行该站点时,对于两个控件,页面都会显示一个文本框,其中包含字符串中的时间,而我想要的只是日期(由模型中的装饰属性指定)。

对于这种模式,我使用了 Brad Wilson关于 ModelMetaData的文章。

我做错了什么很明显吗?

0 投票
6 回答
5215 浏览

asp.net - ASP.NET MVC 3 HtmlHelper 异常无法识别继承接口上的 ModelMetadata

升级到 MVC 3 RTM 后,我遇到了以前工作的异常。

这是场景。我有几个使用相同底层接口 IActivity 和 Iowned 的对象。

我有一个部分视图,它使用 IActivity 从其他具体部分重用。

这是活动部分的定义。

但是,它会引发异常。在 ModelMetadata 中找不到 AuthorId。

我猜在以前的版本中,它查看了 IActivity 实现的接口。

有什么想法、建议,除了在各处复制类似的界面吗?

复制下面的堆栈跟踪。

0 投票
2 回答
2738 浏览

asp.net-mvc-3 - ASP.NET MVC3 WebGrid 帮助器和模型元数据

我正在尝试使用 ASP.NET MVC 3 中的 WebGrid html 帮助程序根据在 ModelMetadata 中找到的信息自动生成列。例如,接受对象列表的视图中的代码将是:

这实际上就像一个魅力(我很惊讶它实际上很容易)。这里发生的情况是,从模型的属性中,我使用 ShortDisplayName 作为列的标题。

问题?我需要对所有列应用默认格式。基本上我想对我的网格将显示的所有数据使用 Html.Raw 扩展名。尝试将是这样的:

其中 GetPropertyValue 方法将使用反射或其他方式读取属性的值(我需要在这里提醒项目是动态的,它的值实际上是当前行中显示的对象)。

有没有更好的方法来做到这一点?

谢谢,

科斯塔斯

0 投票
1 回答
1568 浏览

asp.net-mvc-2 - DataAnnotationsModelMetadataProvider 的源代码

出于某种原因,当我尝试反思此类时,.NET Reflector 会引发异常。它适用于其他一切。

请问源代码是DataAnnotationsModelMetadataProvider什么?

0 投票
1 回答
1069 浏览

asp.net-mvc - MVC 3 - 访问 IEnumerable 模型的 ModelMetaData?

我正在尝试访问我正在处理的自定义 HtmlHelper 的 ModelMetaData。HtmlHelper 有这样的签名......

(剃刀)视图看起来像这样......

我的问题是我无法访问模型的 ModelMetaData,因为它是 IEnumerable。我以为我可以做到以下几点:

但奇怪的是,我收到以下错误:

我虽然可以从通用列表转换为通用 IEnumerable。我错过了什么吗?