asp.net MVC должен инкапсулировать модель домена в модель представления? - PullRequest
5 голосов
/ 08 апреля 2010

Я видел много примеров MVC, в которых доменные объекты передаются непосредственно в представления, это будет работать нормально, если ваше представление простое.

Общая альтернатива - иметь модель представления, которая имеет все те же свойства, что и модель вашего домена, + любые дополнительные свойства, которые могут понадобиться вашему представлению (например, «verifyPassword»).

Прежде чем заняться чтением и открытием AutoMapper, я начал создавать свой собственный вариант модели представления, в котором объект домена (или несколько объектов домена) - это просто свойства модели представления.

Я сделал плохую вещь? Какие проблемы или преимущества можно извлечь из этого подхода? При каких обстоятельствах этот способ работы может работать хорошо?

Ответы [ 2 ]

4 голосов
/ 08 апреля 2010

Нет ничего плохого в том, чтобы представить модель вашего домена непосредственно представлению. Основной риск связан с раскрытием свойства, которое вы не имели в виду, например поля зарплаты на объекте Employee. Обязательно следите за этим, если вы возвращаете JSON.

Еще одна вещь, на которую следует обратить внимание, это когда вы связываетесь с формой редактирования. Вы должны знать о конкретных рисках , которые связаны. По сути, злоумышленник может добавить поля в POST, которые совпадают с полями, которые вы не хотели редактировать. Я всегда привязываюсь к промежуточному объекту, который передается в службу, прежде чем сопоставить его с доменом.

0 голосов
/ 08 апреля 2010

Bad? Не могу использовать Automapper. ;)

Хорошо? Ничто не приходит на ум.

Я не думаю, что ты сделал что-то ужасное. Работает ли это для вас? Если так, то почему бы и нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...