自定义数据注释(DataType)

Joh*_*ell 4 c# asp.net-mvc data-annotations

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

弯腰你有

[DataType(DataType.Html)]
public string Footer {get; set;} 
Run Code Online (Sandbox Code Playgroud)

并添加到混合中 ~Views/Shared/EditorTemplates/Html.cshtml

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

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

Mar*_*ers 5

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

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

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

public NewDataTypeAttribute(NewDataType newDataType) : base (newDataType.ToString()) { }
Run Code Online (Sandbox Code Playgroud)