Я стараюсь избегать использования логики потока управления в моих представлениях (ASP.NET MVC), за исключением случаев, когда мне может потребоваться, чтобы часть интерфейса была видимой / невидимой в зависимости от наличия или отсутствия данных. В данном случае это логика представления - я определяю макет страницы, доступные элементы страницы и т. Д. Я думаю, что это вполне приемлемо и предпочтительнее, если контроллер определяет это или умножает представления на учитывать мелкие варианты. Контроллер должен предоставить представлению достаточно информации, чтобы он мог отображать представление и его варианты по мере необходимости.
То, что я бы не стал рассматривать, - это бизнес-логика, которая определяет, как что-то вычислять или выполнять какое-либо действие (за исключением, возможно, решений на основе ролей - они, кажется, возникают практически везде). Помимо проверки на стороне клиента, моя бизнес-логика находится в контроллере / модели.
Примером, где я мог бы использовать if / then логику в представлении, является представление, которое отображает события. В моем приложении события могут иметь вложенные события, но вложенные события не могут иметь дополнительных вложенных событий: двухуровневую иерархию. На моей странице отображения у меня есть вкладки для Детали, Группы, Участники и Subevents. Они одинаковы для событий и вложенных событий, за исключением вкладки Subevent. Это не должно существовать для вложенного события. Вместо того, чтобы повторяться, имея два разных представления, которые практически идентичны, за исключением одной вкладки, я добавил к представлению небольшое количество логики, чтобы не отображать вкладку Subevent, если у события ее нет.
К тому же, я бы не пошел так далеко, чтобы иметь единственное «представление», которое использует логику для определения, показывать ли обзор, детали или панель редактирования и т. Д. На основе значения некоторого элемента данных представления. , Это кажется злоупотреблением принципом единственной ответственности применительно к взглядам. Каждое представление должно иметь единственную цель, ИМО.