0

SL5 では、エンティティ モデルから生成された DomainService.metadata からのデータを表示する DataForm があります。

DomainService.metadata のデータ プロパティを装飾するために、Required、StringLength などの DataAnnotation.ValidationAttribues を使用しています。

これらの検証属性はうまく機能します。コンパイルして実行すると、検証が DataForm に表示されます。

しかし、EnumDataType 属性を DataForm で動作させることはできません。あたかもそこになかったかのようです。

  public partial class Student {

     internal sealed class StudentMetadata {

        public enum MyEnum {
           One = 1,
           Two = 2
        }

        private StudentMetadata() {
        }

        [EnumDataType(typeof(MyEnum), ErrorMessage = "Type 1 or 2")]
        public Nullable<int> Other { get; set; }

        [Required]
        public int Age { get; set; }

たとえば、DataForm ではフィールドAgeを空のままにすることはできませんが、TypeOfRoomフィールドに 4 を入力すると、エラー メッセージは表示されません。

ComboBox などを使用できることはわかっていますが、EnumDataType 検証属性の使用法を学ぼうとしています。

4

1 に答える 1

0

Otherプロパティのタイプを、サポートする列挙型(この場合)のタイプに変更する必要がありますMyEnum

    [EnumDataType(typeof(MyEnum), ErrorMessage = "Type 1 or 2")]
    public MyEnum Other { get; set; }
于 2012-09-11T07:05:16.337 に答える