asp.net-mvc – 从ModelMetaData获取另一个属性的值
发布时间:2020-05-22 12:23:52 所属栏目:asp.Net 来源:互联网
导读:我试图从自定义验证属性的GetClientValidationRules方法中获取另一个属性的值. 这是我的尝试(基于另一个问题的Darin’s response): public IEnumerableModelClientValidationRule GetClientValidationRules( ModelMetadata metadata, ControllerContex
|
我试图从自定义验证属性的GetClientValidationRules方法中获取另一个属性的值. 这是我的尝试(基于另一个问题的Darin’s response): public IEnumerable<ModelClientValidationRule> GetClientValidationRules(
ModelMetadata metadata,ControllerContext context)
{
var parentType = metadata.ContainerType;
var parentMetaData = ModelMetadataProviders.Current
.GetMetadataForType(null,parentType);
var parentMetaData = ModelMetadataProviders.Current
.GetMetadataForProperties(context.Controller.ViewData.Model,parentType);
var otherProperty = parentMetaData.FirstOrDefault(p =>
p.PropertyName == "SomeProperty");
var otherValue = otherProperty.Model;
var rule = new ModelClientValidationRule
{
ValidationType = "customvalidatorattribute",ErrorMessage = this.FormatErrorMessage(metadata.GetDisplayName()),};
yield return rule;
}
但是,在尝试设置otherValue时,我得到:
解决方法问题是你没有传入绑定模型.更改以下两行:var parentMetaData = ModelMetadataProviders.Current
.GetMetadataForProperties(context.Controller.ViewData.Model,parentType);
var otherValue = (string)parentMetaData.FirstOrDefault(p =>
p.PropertyName == "SomeProperty").Model;
这将获得当前模型的完整元数据(包括绑定值). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 必需属性“pageBaseType”未找到 – 启动我
- asp.net – Autofac懒惰属性注入
- asp.net-mvc – 在ClaimsIdentity上,BootstrapContext为nul
- asp.net – 当HTTPContext .Current为Nothing时如何使用Ser
- asp.net-mvc – ASP.NET MVC:调用存储过程的最佳方式
- asp.net – Jquery datepicker:验证日期mm/dd/yyyy
- ASP.NET:global.asax中的Access Session变量
- asp.net – 在使用预编译的Razor视图和VirtualPathProvider
- 在ASP.NET MVC Web API服务和MVC客户端体系结构中实现身份验
- asp.net-mvc – Asp.Net MVC主题,如何?
