0

DisplayAttributeビュー モデル内でエンティティの値を使用する方法はありますか?

public partial class Catalog
{
  [Display(ResourceType = typeof(Resources), Name = "ID")]
  public string ID { get; set; }

  [Display(ResourceType = typeof(Resources), Name = "CatalogName")]
  public string CatalogName { get; set; }
}

public class CatalogViewModel
{
  private readonly Catalog _catalog;

  // I want reuse Catalog.CatalogName's display values.
  public String CatalogName
  {
    get { return _catalog.CatalogName; }
  }
}

ビュー モデルからリソースにアクセスできません。

4

1 に答える 1

0

通常、ここで行うようにビュー モデル内でドメイン オブジェクトを使用することはありません。なぜそれが良い習慣ではないのか (機能的には機能しますが) の説明はhereです。あなたがする必要があるのは、ビュー モデルを文字列と int (プリミティブ) から定義し、AutoMapperのようなものを使用してそれらの間をマッピングすることです。実際の Web サイトでは、ドメイン モデルがビュー モデルに 1 対 1 でマッピングされることはまれです。通常、ビュー モデルは、複数のテーブルから必要なすべての情報を運ぶ特定のビューに合わせて調整されます。

質問に戻ります: 先ほど説明したベスト プラクティスに従ってビュー モデルを定義すると、すべての注釈と検証を確実に定義できます (また、定義する必要があります) (流暢な検証またはデータ注釈を使用) 。

これが役に立てば幸いです。そうでない場合はお知らせください。

于 2013-03-23T12:17:52.580 に答える