问题标签 [modelmetadataprovider]

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 回答
151 浏览

asp.net-mvc - ASP.NET MVC:从 EditorTemplate 访问容器

我有一个包含以下属性的视图模型AssetFreezeViewModel.cs :

我有一个基于上面 ViewModel的视图Details.cshtml :

在 \Views\Shared\EditorTemplates\ 中,我有一个模板 AssetFreezeAccountBalanceViewModel.cshtml,其名称与 AccountBalanceInfo 的类型相同,即 AssetFreezeAccountBalanceViewModel (按照约定)

在那个 EditorTemplate 中,我有:

AssetFreezeAccountBalanceViewModel.cs中,我有:

最后,在 \Views\Shared\EditorTemplates\ 我有DropDownList.cshtml(按约定应用于 DeviseId):

当代码点击 @Html.EditorFor(model => model.DeviseId) 时,我们输入 DropDownList.cshtml ,其中Container为 null 然后崩溃。

如何从低于其视图 2 级的 EditorTemplate 访问容器(= 父级)?

0 投票
2 回答
6318 浏览

asp.net - 为 .NET Core 中的类获取 ModelMetadata

在 Entity Framework 6 中,我可以像这样获取类 (myModel) 的 ModelMetadata:

如何在 .net core 1.1.1 中做同样的事情?

0 投票
0 回答
263 浏览

c# - 使用自定义 HtmlHelper 运行测试时,涉及 TryValidateModel 的测试失败

我有一个 HtmlHelper 扩展方法的测试,当它是我运行的唯一测试时效果很好。它出现在下面。只要我不同时运行此测试,我的所有其他单元测试都会在我运行它们时成功。

但是当我一起运行这个和我所有的其他单元测试时,所有那些测试调用 System.Web.Mvc.Controller 的过程的那些。TryValidateModel在该行上失败(无论模型如何),但有以下例外:

System.InvalidCastException:无法将“Castle.Proxies.INicheUserProxy”类型的对象转换为“System.Web.Mvc.ModelMetadataProvider”类型。

所有调用 TryValidateModel 的测试都成功——除了下面的测试,它在过程的 ModelMetadata.FromLambdaExpression 行上失败并出现相同的异常(见下文)。

我认识到 ModelMetaData ...

“为通用元数据、ModelMetadataProvider 类和数据模型的 ModelValidator 类提供容器。” https://msdn.microsoft.com/en-us/library/system.web.mvc.modelmetadata(v=vs.118).aspx

...并且正在测试的程序是这样开始的...

...所以我担心在这个测试中弄乱 HtmlHelper 会影响(破坏?)其他所有测试的 ModelMetaData。

我在做什么导致这些测试在同一测试运行中失败(但在它们不是成功时)?我该如何纠正?

0 投票
2 回答
343 浏览

c# - modelmetadata IsRequired 未获取 FluentValidation 创建的规则验证

我有一个通过 Fluent 创建自定义验证器的类:

实现 RegisterValidator 验证器的类模型:

最后是一个用于在@Html.RequiredLabelFor(...) 中覆盖@Html.LabelFor(...) 的htmlhelper 类:

问题是LabelHelper函数中的“metadata.IsRequired”总是返回false,但它应该为“UserName”属性返回true......我认为这是因为metadata.IsRequired无法识别RegisterValidator类中的“.NotEmpty()”。 ..

**

有谁知道如何解决这个问题,在 HtmlHelper 上这样做我可以看到属性是“NotEmpty()”,还是通过其他解决方案?

**