asp.net-mvc – 从ModelMetaData获取另一个属性的值
发布时间:2020-08-16 05:44:02 所属栏目: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-3 – 如何关闭我的整个ASP.NET MVC
- asp.net-identity交易问题
- asp.net – 将appsettings.production.json发布到
- 是否可以使用ASP.NET ScriptManager来使用Window
- asp.net-mvc – 从基本控制器继承LINQ-to-SQL数据
- asp.net – 304未修改静态文件
- asp.net-mvc – 保存后显示相同的页面
- asp.net – 如何在Windows Phone中开发Google地图
- asp.net-mvc – 如何将XML作为POST传递给ASP MVC
- ASP.NET AJAX与ASP.NET MVC中的jQuery
热点阅读