4

既存のDataAnnotationsに新しいデータ型を追加することは可能ですか(バリデーターではなく生のデータ型を探しています)。例えば

現在、あなたは

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

そして、ミックスに追加することができます~Views/Shared/EditorTemplates/Html.cshtml

追加できるようにしたいと思います[DataType(DataType.CSS)]。理論的には、を使用しUIHintて特定のビューを追加できますが、可能であれば、UIヒントに依存するのではなく、さらに早い段階でデータ型を指定したいと思います。

任意のポインタをいただければ幸いです。SOのクイック検索は、カスタムメタデータ型、カスタムバリデーター、および複数のデータ型に関する多くの答えのようですが、新しいコアデータ型を追加するための1つを見つけることができないようです。

4

2 に答える 2

5

DataTypeには、文字列を受け取る2番目のコンストラクターがあります。ただし、内部的には、これは実際にはUIHint属性を使用する場合と同じです

DataType列挙は.NETFrameworkの一部であるため、新しいコア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 に答える