Web Api ModelState验证忽略DisplayAttribute
给定一个包含这些数据注释的模型:
public class Example
{
[Required]
[Display(Name = "Activity response")]
public string ActivityResponse { get; set; }
}
我期望模型状态错误消息是“活动响应字段是必需的。” 相反,它是“活动响应字段是必需的”。
有同样的问题,我为它做了一个解决方法。 我知道这并不完美。
对于每个dataannotation属性创建一个新类
public class RequiredAttribute : System.ComponentModel.DataAnnotations.RequiredAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
validationContext.DisplayName = ModelMetadataProviders
.Current
.GetMetadataForProperty(null, validationContext.ObjectType, validationContext.DisplayName)
.DisplayName;
return base.IsValid(value, validationContext);
}
}
public class StringLengthAttribute : System.ComponentModel.DataAnnotations.StringLengthAttribute
{
public StringLengthAttribute(int maximumLength)
: base(maximumLength)
{ }
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
validationContext.DisplayName = ModelMetadataProviders
.Current
.GetMetadataForProperty(null, validationContext.ObjectType, validationContext.DisplayName)
.DisplayName;
return base.IsValid(value, validationContext);
}
}
等等....
万岁! codeplex问题报告说,这个错误将在Web API v5.1 Preview中得到解决。
链接地址: http://www.djcxy.com/p/11649.html上一篇: Web Api ModelState validation is ignoring the DisplayAttribute