问题标签 [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 投票
2 回答
376 浏览

asp.net-mvc - LinFu 代理对象的查找目标

这几乎是一个重复的问题,但我没有使用 Castle Dynamic Proxy,而是使用 LinFu获取代理对象的底层类型

我正在使用 automapper 创建要发送到 Asp.net MVC 中的视图模型的接口代理。我的问题是我可以告诉 MVC 的默认 MetadataProvider 通过调用模型上的 .GetType() 来查找属性和元数据。

因此,EditorFor() 和 DisplayFor() 模板不会生成任何字段。我需要做的是找到代理目标类型,然后生成我的模板。我知道我可以解析名称并使用 GetType("thename") 但想知道是否有简单的方法。

0 投票
3 回答
5298 浏览

asp.net-mvc - ASP.NET MVC 2 中的元数据类型和客户端验证

继承的属性和 MetadataType 似乎不适用于 ASP.NET MVC 2 中的客户端验证。

我们的 MetadataTypes 验证在服务器上按预期工作,但由于某种原因,它没有为它生成适当的客户端脚本。对于在 PersonView 上设置了 DataAnnotations 属性的属性,客户端验证按预期启动,因此我知道客户端验证处于活动状态并且可以正常工作。有谁知道它是否或如何修复?

这是我们所拥有的:

如您所见,那里并没有什么花哨或奇怪的东西……可以修复吗?它是 ASP.NET MVC 2 中的错误吗?

0 投票
3 回答
424 浏览

asp.net-mvc - ASP.NET MVC / Linq-to-SQL 类:我可以让它推断出可读的显示名称吗?

如果我有一个Orders包含字段和的表CustomerID,那么将调用“Linq-to-SQL 类”生成的类,其中的成员称为和。到现在为止还挺好。OrderIDOrderDateOrdersCustomerIDOrderIDOrderDate

但是,如果我这样做,Html.LabelFor(m => m.OrderDate)那么生成的文本将是“OrderDate”而不是“Order Date”。

我尝试使用Order_Date作为字段名称,但这不起作用。有没有办法让它推断出更好的显示名称?

[我知道我可以使用数据注释来明确指定显示名称,但我真的不想为我的所有类/成员这样做——我只是希望它按惯例工作。]

0 投票
1 回答
1734 浏览

asp.net-mvc-2 - 如何在 ModelMetaData 上填充 Watermark 属性?

我刚刚读完http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-2-modelmetadata.html在文章 Brad 列出了该Watermark属性但没有提及DataAnnotation 用于填充它。

0 投票
2 回答
591 浏览

asp.net-mvc-2 - Limit JavaScript and CSS files on ASP.NET MVC 2 Master Page based on Model and View content

I want to include certain .js and .css files only on pages that need them.

For example, my EditorTemplate DateTime.ascx needs files anytimec.js and anytimec.css.

That template is applied whenever I use either the EditorFor or EditorForModel helper methods in a view for a model with a DateTime type value.

My technique:

I've put this condition into the <head> section of my master page. It checks for a DateTime type property in the ModelMetadata.

#xA;

This has two problems:

  1. Fails if I have nested child models of type DateTime

  2. Unnecessarily triggered by views without EditorFor or EditorForModel methods (example: DisplayForModel)

How can I improve this technique?

0 投票
1 回答
1766 浏览

asp.net-mvc - ASP.NET MVC 自定义 MetadataProvider

我正在构建一个自定义 MetadataProvider 并且我想访问该CreateMetadata方法中的实际模型值。

当前模型值为字符串类型时,模型值可以在metadata.Model. 但是当模型是引用类型时,该值为空。

或者也许有什么方法可以将自定义数据传递给这个方法?

0 投票
1 回答
1377 浏览

asp.net-mvc - ModelMetadata:ShowForEdit 属性似乎不起作用

Iv 编写了如下所示的 MetaDataProvider,并将其与编辑器模板结合使用。DisplayName 工作正常,但由于某种原因 ShowForEdit 值没有任何效果。有任何想法吗?

0 投票
1 回答
423 浏览

asp.net-mvc-2 - metadata.HideSurroundingHtml 不起作用的解决方案

我编写了一个自定义的 DataAnnotationsModelMetadataProvider 动态设置 HideSurroundingHtml。

但这似乎没有被编辑器模板接受。所以 Iv 为标签创建了一个新的 HTML 扩展方法,试图强制 HideSurroundingHtml 工作。

但这不起作用,此外,当我将断点附加到这些时,它似乎在 CreateMetadata 方法之前命中了扩展方法 - 这解释了为什么这不起作用,但按此顺序调用它的事实没有意义。

任何人都可以解释这一点吗?或者如何实现我想要实现的目标?

0 投票
1 回答
627 浏览

asp.net-mvc - ASP.NET MVC2:你能从集合中获取 ModelMetadata.ContainerType 吗?

我正在尝试调用 DisplayFor 和 DisplayForModel 从视图中迭代具有各种元素类型的 IEnumerable<>。我为每个元素/模型类型定义了模板。

我想做的是从模板中检查 ViewData.ModelMetadata.ContainerType ,以便模板可以确定它是否作为集合的一部分被调用。

一个简单的例子:

Index1.aspx:用于渲染 Foos 的集合。

Index2.aspx:从 Bar 渲染一个 Foo。

Shared\DisplayTemplates\Foo.ascx:Foo 的上下文感知模板。

此示例的问题是通过 Index1.aspx 解析时,模板中的 ViewData.ModelMetaData.ContainerType 为空。从我在Brad Wilson 的帖子和其他人的文章中读到的内容,它与 IEnumerable 的使用及其作为接口有关。

有没有办法确保 ContainerType 已设置?也许通过创建 ModelMetadataProvider?我简短地调查了一下,但似乎 ContainerType 值是在之前确定的,然后传递给了提供者。

任何建议,将不胜感激。

0 投票
1 回答
547 浏览

asp.net-mvc - 除了将 MetadataTypeAttribute 直接放在类上之外,有没有办法向 ASP.NET MVC 指示一些类元数据?

这是它现在如何工作的示例:

但是,我不希望将 MetadataAttribute 放在 Person 类上,而是希望通过某种方式告诉 MVC 框架“嘿,如果您遇到 Person 类,元数据在 PersonMetadata 类中”。

它只是颠倒了对我来说更具组合性并遵循开闭原则的方向,因为我不必触摸 Person 类来用元数据“扩展”它。
我知道这会造成可能附加多个相互冲突的元数据的问题,也会增加复杂性,但灵活性总是要付出代价的。

我想要一种程序化或声明性的方式,或者最好两者兼而有之:)

所以一个可能是这样的:

另一个可能是: