我有一个从web服务获得的简单类。自定义验证列表中的单个项目
public class person
{
public string name { get; set; }
public int number { get; set; }
}
而且在我的代码
public class people
{
[ValidatePerson]
public List<person> myPeople;
}
第二类和定制ValidationAttribute
[AttributeUsage(AttributeTargets.Property,AllowMultiple = false)]
public class ValidatePerson : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
ValidationResult returnValue = ValidationResult.Success;
return returnValue; // do stuff later
}
}
因为人来自一个web服务,我不能一个装饰添加到它(我知道)并且将装饰者添加到人物中的属性意味着“价值”不是人。
我想验证的人不List<person>
的原因是因为我在editortemplate的人使用@Html.ValidationMessageFor(model => model);
,我想有多个消息,如“这不是一个有效的人”不是顶部,一个块说“你有三个无效的人”。
我最终创建了公共类'ValidPerson:person {public ValidPerson(person){...}}'并不像我喜欢的那样干净,因为web服务改变了人的某些东西我需要调整更多的代码。此外,我还需要人,所以我需要转换回来。 – Jeff 2012-03-27 00:29:32