1


1

プロパティのサブセットのデータ注釈

私はデータ注釈(つまり、 Scott Guthrieのブログ投稿)と検証の概念に興奮しています一箇所にロジック。

特定のクラスに関連付けられているプロパティのサブセットを入力するようにユーザーに求めるときに、このテクニックを使用できる人はいますか?

たとえば(擬似コード)…​

public class Person
{
  [Required]
  public string Name

  [Required]
  public string Email
}

次に、名前を持つフォームのみを表示するビューがあるとしましょう。 そのビューのHttpPostコントローラー内のModelState.IsValidの値は、電子メールが必要で欠落しているため、常にfalseになります。

名前のみを必要とする部分と、名前とメールの両方を必要とする部分に別々のモデルを用意することを考えましたが、2つの名前検証ロジックがあるため、DRYの原則を破っています場所。

助言がありますか? この方法でデータ注釈を機能させることはできますか? 単純に2つの別個のクラスが必要ですか? 電子メールが必要かどうかを判断する前にフラグをチェックするhttps://stackoverflow.com/questions/2280539/custom-model-validation-of-dependent-properties-using-data-annotations[CustomValidationAttribute]

1 Answer


3


すべてのビューには、独自のビューモデルが必要です。 いくつかの既存のビューモデルを再利用できる場合があります-これは使用できません。

カスタム属性を作成するのは、それらのプロパティが1つの形式であり、両方が必要な場合と、一方が必要な場合があります。 別のビューがある場合は、別のビューモデルを作成します。