自定义数据注释(数据类型)

时间:2012-08-12 14:09:59

标签: c# asp.net-mvc data-annotations

是否可以将新数据类型添加到现有DataAnnotations(我不是在寻找验证器而是在寻找原始数据类型)。例如

Currnetly你有

[DataType(DataType.Html)]
public string Footer {get; set;} 

在混音中你可以添加~Views/Shared/EditorTemplates/Html.cshtml

我希望能够添加[DataType(DataType.CSS)]我在理论上知道我可以使用UIHint来添加特定视图,但如果可能的话,我想在更早的时候进行stage并指定数据类型而不是依赖UI提示。

任何指针都将非常感激。快速搜索S.O似乎有很多关于自定义元数据类型,自定义验证器和多个数据类型的答案,但我似乎找不到添加新核心数据类型的答案。

2 个答案:

答案 0 :(得分:4)

DataType有一个second constructor,它带有一个字符串。但是,在内部,实际上与使用UIHint属性相同。

由于DataType枚举是.NET框架的一部分,因此无法添加新的核心DataType。您可以做的最接近的事情是创建一个继承自DataTypeAttribute的新类。然后,您可以添加具有自己的DataType枚举的新构造函数。

public NewDataTypeAttribute(DataType dataType) : base(dataType) { }

public NewDataTypeAttribute(NewDataType newDataType) : base (newDataType.ToString()) { }

答案 1 :(得分:2)

是的,你可以。 DataTypeAttribute有一个constructor,可以接受string