Если вы видите в верхней части ASP.NET MVC зрения:Использование DTO в качестве модели для вида
<% var dto = (MyDto)Model; %>
... что-то не так? Мне это не нравится ...
Если вы видите в верхней части ASP.NET MVC зрения:Использование DTO в качестве модели для вида
<% var dto = (MyDto)Model; %>
... что-то не так? Мне это не нравится ...
Вам не нужно вводить тип таким образом для строго типизированного представления. Если представление наследуется от ViewPage<MyDto>
, то свойство Model будет иметь тип MyDto
.
Если представление не сильно типизировано, свойство Model имеет тип object
, поэтому вам нужно будет его отличить.
Это имеет смысл использовать сильно типизированный в этом случае, хотя
Возникает вопрос: Является ли это хорошо для хранения объектов DTO в качестве модели View? Мой ответ: это зависит. У DTO должно быть только одно поведение: сохранение данных. Поэтому, когда вы используете объект DTO только для отображения его на View: тогда все в порядке.
View Model предназначена для хранения объектов с более высоким уровнем совместимости, которые содержат несколько вариантов поведения, но нет никакой ошибки для хранения DTO.
Можете ли вы привести пример, когда объект, отправленный в представление, требует более сложных функций? – Ben
Например: некоторый объект ActiveRecord – Dariusz