是否可以将新数据类型添加到现有DataAnnotations(我不是在寻找验证器而是在寻找原始数据类型)。例如
Currnetly你有
[DataType(DataType.Html)]
public string Footer {get; set;}
在混音中你可以添加~Views/Shared/EditorTemplates/Html.cshtml
我希望能够添加[DataType(DataType.CSS)]
我在理论上知道我可以使用UIHint
来添加特定视图,但如果可能的话,我想在更早的时候进行stage并指定数据类型而不是依赖UI提示。
任何指针都将非常感激。快速搜索S.O似乎有很多关于自定义元数据类型,自定义验证器和多个数据类型的答案,但我似乎找不到添加新核心数据类型的答案。
答案 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
。