Что не должно быть внутри вида MVC? - PullRequest
2 голосов
/ 20 июня 2010

Из ограниченного числа людей, с которыми я общался по поводу веб-фреймворков MVC, я слышал, что люди забывают о формах, файл представления в идеале должен содержать разметку HTML, манипуляции со строками и несколько циклов for each , Мне также сказали, что if утверждений в представлениях следует избегать, если это вообще возможно. Это в целом согласовано?

EDIT : Ситуация, которая вдохновила на этот вопрос, - это написание навигации, а я пишу:

if secondary_navigation_item has children
    ...

Я думаю, в идеале это квалифицируется как логика (этого не должно быть здесь)?

Ответы [ 3 ]

4 голосов
/ 20 июня 2010

Вообще говоря, представление не должно содержать какой-либо серверной бизнес-логики.Но он все еще может содержать логику, которая непосредственно относится к визуализации представления.

Примером может быть представление, содержащее какую-то вариантную запись, отображение которой зависит от настройки конкретного поля.Например, запись, которая отображает различную информацию, в зависимости от того, какое половое поле установлено как мужское или женское.Что, конечно, потребовало бы заявления if.

4 голосов
/ 20 июня 2010

Сказать, что ваши представления не должны содержать никакой условной логики, просто глупо.Как еще вы могли бы генерировать элементы пользовательского интерфейса, такие как значки «новых сообщений» или флэш-сообщения, - использовать разные шаблоны представления для каждого возможного состояния интерфейса?Это все равно что сказать, что ваш контроллер не должен содержать каких-либо назначений переменных, потому что манипулирование данными принадлежит модели.

Вполне нормально иметь логику в своем представлении, если это логика, связанная с представлением.Вы не должны увлекаться абсолютами или педантичными интерпретациями определений модель-представление-контроллер.Пока вы понимаете и применяете базовые концепции MVC, вы на правильном пути.

У каждого правила есть исключение, и есть случаи, когда вы выполняли бы манипуляции со строкамиконтроллер или даже реализовать поток приложений в представлении.Иногда вам просто нужно оценить его на индивидуальной основе и применить немного здравого смысла.

2 голосов
/ 20 июня 2010

Представление в основном должно содержать:

  • HTML-разметка
  • Javascript
  • CSS
  • Минимум кода на стороне сервера, который может понадобитьсяположить в представление

Итак, представление обычно должно содержать элементы макета.Основная логика обработки должна идти в контроллере.

Подробнее:

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

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