Повторное использование DisplayAttributes со свойствами модели представления

Есть ли способ использовать значения 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; }
  }
}

Я не могу получить доступ к ресурсам из модели представления.


person Jordan    schedule 18.03.2013    source источник


Ответы (1)


Обычно вы не будете использовать объекты домена в моделях представления так, как вы это делаете здесь. Объяснение, почему это не очень хорошая практика (хотя функционально она будет работать): здесь. Что вам нужно сделать, так это определить вашу модель представления из строк и целых чисел (примитивов) и использовать что-то вроде AutoMapper для сопоставления между ними. На реальном веб-сайте редко бывает, что модель предметной области отображается один в один для модели просмотра, обычно модель представления адаптирована для конкретного представления, содержащего всю необходимую информацию из нескольких таблиц.

Вернемся к вашему вопросу: имея модель представления, определенную в соответствии с передовыми методами, которые я только что описал, вы, безусловно, можете (и должны) определить все аннотации и проверки (используя плавная проверка или аннотация к данным)

Надеюсь, это поможет, дайте мне знать, если нет.

person Display Name    schedule 23.03.2013