Это произошло во время одной из наших ретроспектив и потребовало дополнительной обратной связи и проверки места. В настоящее время у нас есть несколько представлений, которые включают/отключают на основе булевых флагов (пример Model.IsNew). Я считаю, что мнения должны быть как можно более простыми, и контроллеры должны определять данные для этой точки зрения, а не обязательно, как это работает. Я думаю, что взгляды, частичные или полные, должны быть -только-что делать и обрабатывать это против представления, определяющего, что должно быть показано/скрыто. Очень простой пример выглядит следующим образом, но охватывает обе стороны этого и в основном отражает то, что у нас есть ...Множественные взгляды против одного «сложного» вида в MVC
Контроллер имеет пару методов (post/get), называемых Подробности. [Получить] Подробности имеет единственный параметр, идентификатор и [Сообщение] Подробности принимают id и viewmodel. В столбце метод ~ 30 строк, проверяющий действительную модель, определяет, изменилось ли ее новое, если определенное значение изменилось (триггеры перенаправляют) и т. Д. (Я думаю, что это неверно). Проверка [Get] Details для пустого идентификатора, заполняет необходимые выпадающие списки, ничего необычного (я думаю, это правильно). В самом подробном представлении содержится небольшая часть логики: If (! Model.IsNew) {RenderAction (History => History.Show (id);} (я думаю, что это неверно, шоу должно знать, что отображать, независимо от того, является ли это новым). Плюсом к этому является макет для указанного подробного представления, который не выполняется дважды. Детали/Добавить почти идентичны, минус некоторые отключенные поля в зависимости от состояния (возможно, это должны быть частичные?) - объект может быть отключен/удален делает значения редактируемые или нет.
Мысли, мнения, идеи?
Я согласен, я думаю, что чем больше вы сможете разделить вверх, тем лучше и повторное использование и злоупотребление там, где это возможно, и обернуть его в форме. Хорошо, так что я не был заброшен? – jeriley 2010-11-30 03:04:51