我有一个代表应付金额的房产'在许多不同的类。它们不共享公共基类或接口。
此属性具有以下规则:
这个属性会在我负责的许多不同系统中出现很多,所以我希望有一个属性为" PayableAmountAttribute"这将封装所有这些功能。我知道我可以执行复合验证属性(以及元数据,通过实现IMetadataAware
),但我很难过如何将UI提示作为其中的一部分包含在内属性。
有没有办法可以将验证属性和UIHint属性合并到一个属性中?
答案 0 :(得分:0)
由于我正在实施IMetadataAware
,因此我可以访问ModelMetadata
的实例,这样我就可以设置TemplateHint
属性:
public class PayableAmountAttribute : ValidationAttribute, IMetadataAware
{
public override bool IsValid(object Value)
{
// Implementation of looping through validation attributes
}
public void OnMetadataCreated(ModelMetadata Metadata)
{
Metadata.TemplateHint = "Amount";
Metadata.AdditionalValues.Add("Amount.MaxLength", 10);
}
}