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