您可以注册一个类以用作模型的元数据/验证提供程序。
拥有您的实体,这是无法改变的:
public class MyModel
{
public int IntProperty { get; set; }
public DateTime DateProperty { get; set; }
}
您可以在 MVC 端拥有它的元数据,您可以验证并提供元数据,就好像它是原始类一样:
[ValidationAttribute(...)]
[ValidationAttribute(...)]
public class MyModelValidator
{
[Required]
[Display("My Integer")]
public int IntProperty { get; set; }
[DataType(DataType.DateTime)]
public DateTime DateProperty { get; set; }
}
最后,您只需要将 Metadata/Validator 类附加到对应的基类,例如在 Global.asax 上:
protected void Application_Start()
{
AssociatedMetadataTypeTypeDescriptionProvider typeDescriptionProvider;
typeDescriptionProvider = new AssociatedMetadataTypeTypeDescriptionProvider(
typeof(MyModel),
typeof(MyModelValidator));
TypeDescriptor.AddProviderTransparent(typeDescriptionProvider, typeof(MyModel));
// register other metadata classes
}
您可以为您想要的每个实体执行此操作。