Вопрос

В последнее время я изучал, какой наилучший способ организовать уровень представления ASP.NET Приложение MVC, когда базовая модель сложна.То, что появилось до сих пор, - это архитектура MVVM с их объектами ViewModel.Однако я не уверен, каковы наилучшие практики при использовании такого рода архитектуры.

  • Могут ли объекты ViewModel содержать объекты модели?
  • Если используется MVVM, желательно ли, чтобы объекты модели использовались в представлениях?
  • Где должна быть реализована проверка, в ViewModel или классах моделей?
  • Должен ли бизнес-уровень (service layer) знать о ViewModel и кто отвечает за сопоставление между ViewModel и Model?
Это было полезно?

Решение

  • В большинстве случаев объекты ModelView - это просто контейнеры, содержащие объекты модели, когда нам нужно отправить несколько их типов или когда нам нужно передать еще пару свойств, которые необходимы только в представлениях.
  • Если задача Представления состоит в отображении деталей модели и больше нечего передавать в View, почему бы и нет?
  • Зависит от обстоятельств.Вы можете использовать свой ModelView и классы моделей только для переноса данных между слоями.И позаботьтесь о проверке с помощью cutom model binders или с помощью service layer.
  • Нет причин, по которым они не должны знать о ModelViews .Но обычно вы просто получаете запрошенные модели с сервисного уровня от контроллера, а затем передаете их напрямую или в ModelView в представление.

Кстати, я бы не рассматривал ModelViews как архитектуру.Это больше похоже на "используй его, когда он тебе понадобится".В конце концов, нет смысла делать это для передачи данных в view :

class SomeModelView {
    public MyModel model { get; set; }
}

Просто передайте MyModel если этого достаточно, чтобы представление выполняло свою работу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top