Где я должен добавить свойство, которое в основном используется в View, в объекте Entity или в классе Wrapper? - PullRequest
0 голосов
/ 04 декабря 2011

Product Entity объект передается в представление. Я хочу добавить некоторые свойства, которые в основном касаются только вида, например

public string MiddleImage
{
   get
   {
      return "M" + this.ImageUrl;
   }
}

И теперь я могу использовать это свойство в представлении

<img src="<%=Model.MiddleImage%>" />

У меня вопрос, где я должен добавить это свойство в самом объекте Product Entity или лучше создать другой класс, который наследуется от Product?

public class ProductWrapper : Product
{
    public string MiddleImage
    {
       get
       {
          return "M" + this.ImageUrl;               
       }
    }
}

1 Ответ

3 голосов
/ 04 декабря 2011

Я бы создал класс ProductViewModel, который содержит свойства, которые заботятся только о вашем представлении, и которые, конечно, могут включать в себя любые вновь сформированные свойства пользовательского интерфейса, такие как URL вашего изображения.

Затем сохраните себе немного работы ииспользуйте AutoMapper в вашем контроллере для сопоставления этих свойств от сущности с моделью представления.

Назначьте пользовательские свойства модели представления после сопоставления.

Ваша Product сущностьсопоставляется с вашим постоянным хранилищем, ваши ProductViewModel сопоставляются с вашим пользовательским интерфейсом - именно такое разделение задач пытается достичь MVC.

...