1

皆さん、私はアーキテクチャ上の質問があります:

非常によく似たアイテムのビューモデルがいくつかありますが、データ注釈が異なります。

public class VM1 {
  [Display(Name="VM1 Field1")]
  public string Field1 { get; set; }
  [Display(Name="VM1 Field2")]
  public string Field2 { get; set; }
}
public class VM2 {
  [Display(Name="VM2 Field1")]
  public string Field1 { get; set; }
  [Display(Name="VM2 Field2")]
  public string Field2 { get; set; }
}
public class VM3 {
  [Display(Name="VM3 Field1")]
  public string Field1 { get; set; }
  [Display(Name="VM3 Field2")]
  public string Field2 { get; set; }
}

VMBaseVM1/2/3 が継承されるように1 つの抽象クラスを定義する方法と、その場合にデータ注釈を割り当てる方法はありますか? 基本的にクラスに関しては典型的なポリモーフィックな状況ですが、データ注釈 - この場合の処理​​方法がわかりませんか?

また、適切なクラスを表示するには、ビューをどのように表示する必要がありますか? それとも、データ注釈のためだけに、全体を 3 倍にする必要がありますか (リストが大きくなる可能性があります)。

流暢な検証で簡単に実行できると思われる場合は、例を提供してください (viewmodel、controller、view)

編集 しかし、私はデータ注釈に固執しようとしています。これらはビューモデル用であり、流暢な検証はドメインエンティティ用です。流暢な検証ではなく、すぐに使用できるデータ注釈からのクライアント側の検証が必要です。

前もって感謝します。

4

1 に答える 1

1

私はこれと同じ問題を抱えていました。ただし、 FluentValidationで解決策を見つけた可能性があると思います。これは EF 用の Fluent API のようなものですが、データ注釈に頼る必要なく、Fluent API が提供しない検証ファセットをカバーします。特定のプロパティの場合、継承チェーンのどこかで異なります。

于 2013-02-27T19:41:51.333 に答える