У меня возникли небольшие проблемы, когда я обдумываю шаблон проектирования MVC, когда тип данных свойства модели сильно отличается от того, что я хочу отобразить в форме. Я не уверен, куда должна идти логика.
Понимая, что я не совсем уверен как задать вопрос, я думаю, что я объясню это как конкретный пример.
У меня есть таблица счетов со второй таблицей, содержащей InvoiceDetails. Каждый из предметов InvoiceDetail имеет владельца, который отвечает за утверждение оплаты. В данном счете есть один или несколько человек, которые в конечном итоге подпишутся во всех строках сведений, чтобы счет мог быть утвержден. Веб-сайт создается для обеспечения функциональности одобрения.
В базе данных хранится идентификатор сотрудника, который утвердил позицию. Эта схема предоставляет мне модель со свойством String для столбца Approved.
Однако на веб-сайте я хочу предоставить сотруднику флажок, чтобы подтвердить, что он одобрил позицию.
Полагаю, мой вопрос в следующем - как мне с этим справиться? Модель, передаваемая в представление, имеет свойство String, но значение формы, передаваемое обратно в контроллер, будет иметь тип CheckBox. Я вижу два возможных пути ...
1) Создайте новый объект Model для представления полей формы ... скажем что-то вроде FormInvoiceDetails ... и попросите бизнес-логику запросить базу данных, а затем преобразовать результаты в другой тип. Затем после отправки значения формы необходимо преобразовать обратно, чтобы можно было обновить исходные объекты модели.
2) Передайте исходную коллекцию InvoiceDetails в представление и создайте там код для визуализации CheckBox на основе значения свойства String. Я все еще не уверен, как обрабатывать отправку, поскольку мне все еще нужно сопоставить значения формы с базовым объектом базы данных.
Может быть, есть третий путь, если не один из этих двух подходов?
Чтобы сделать ситуацию немного сложнее (а может, и нет), я отрисовываю форму, позволяющую редактировать несколько строк (т. Е. Коллекцию).
Спасибо за любые идеи, которые кто-либо может предоставить.