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
热点阅读
