Asp.net mvc 自定义类的验证属性

Asp.net mvc 自定义类的验证属性,asp.net-mvc,Asp.net Mvc,我有课: public class MultilanguageClass{ public string En { get; set; } public string De { get; set; } } 现在我想创建一个类: public class MyShortText{ [MaxLength(40, ErrorMessage = "Name cannot be longer than 40 characters.")] public MultilanguageCl

我有课:

public class MultilanguageClass{
   public string En { get; set; }
   public string De { get; set; }
}
现在我想创建一个类:

public class MyShortText{
   [MaxLength(40, ErrorMessage = "Name cannot be longer than 40 characters.")]
   public MultilanguageClass Name { get; set; }
}

public class MyLongText{
   [MaxLength(140, ErrorMessage = "Name cannot be longer than 40 characters.")]
   public MultilanguageClass Name { get; set; }
}

现在我想,在MyShortText类中,这40个字符将实际用于En和De,在MyLongText类中为140个字符。如何实现这一点?

您需要编写自己的自定义属性来检查每个字段。它将派生自
System.ComponentModel.DataAnnotations.ValidationAttribute
。另请参见比msdn文章更清晰的内容。非常感谢,我阅读了ValidationAttribute,但我不知道如何开始。现在我知道了:)如果您将验证属性应用于类(而不是属性),并且为服务器端验证创建验证属性所涉及的代码远远多于创建2个类(例如)所涉及的代码,那么就无法获得客户端验证
ShortMultilanguageClass
LongMultilanguageClass
将相关的
[MaxLength]
属性应用于类中的每个属性(链接答案中使用的技术与您的问题无关)