4

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

目前你有

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

您可以在混合物中添加~Views/Shared/EditorTemplates/Html.cshtml

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

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

4

2 回答 2

5

DataType 有第二个构造函数,它接受一个字符串。但是,在内部,这实际上与使用 UIHint 属性相同

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

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

public NewDataTypeAttribute(NewDataType newDataType) : base (newDataType.ToString()) { }
于 2012-08-12T14:48:40.473 回答
2

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

于 2012-08-12T14:24:08.793 回答