2009-08-26 3 views
5

Я предпочитаю строго типизированные viewdata для моих представлений mvc asp.net по разным причинам, и я фактически предпочел представления с codebehinds, как это было в предыдущих предварительных предварительных версиях asp.net mvc, потому что код был естественное место для определения класса представлений poco, поскольку они обычно имеют отношение 1: 1 к фактическому виду.asp.net mvc views и сильно типизированные viewdata

Есть ли способ получить код в asp.net rtm views или это не очень хороший подход?

EDIT: Единственная причина, по которой я хотел бы иметь код, заключается в том, что я вижу ViewData как свойство представления. Если вид был классом, то ViewData был одним из его свойств, и это кажется неприемлемым для определения этого в отдельной сборке.

ответ

6

После почти года вместе с MVC я могу подтвердить, что мне не нужен код для просмотров даже один раз. Если вы используете код, вы, вероятно, все еще считаете WebForms. Брось это.

Представления должны быть представлены только для отображения данных модели. Простые решения, такие как класс CSS для применения, могут выполняться непосредственно в представлении в тегах сервера. Более сложные решения должны идти в контроллер или бизнес-логику.

+0

Но вы используете строго типизированные viewdata, и в случае, если вы определяете эти классы? – terjetyl

+0

Эти классы должны быть в собственной сборке - MyProject.Models и для больших проектов MyProject.ViewModels (или .DTO). – Jason

+0

@TT: Да, я использую строго типизированные представления. Я сохраняю модели в папке «Модели».Модели в основном представляют собой отдельный тонкий слой, который содержит подготовленные данные для отображения. – 2009-08-26 11:36:38

0

Наличие кодекса для представлений противоречит одной из целей структуры MVC.

View должен быть как можно более простым и ориентироваться только на презентацию, позволяя контроллеру или расширениям обрабатывать всю бизнес-логику.

Те, у кого есть комбинация ViewState, должны устранить необходимость в кодах.

0

В архитектуре MVC не требуется код, как это было в Web Forms.

Вся архитектура MVC построена на контроллере, контролирующем материал, а не на событиях webcontrol, делающих магию.

Лично я просто попадаю в темную сторону MVC, но мне нравится то, что я вижу здесь сейчас.

Вы можете легко разместить контент на своем представлении с помощью «Возвращаемого вида (элемента)» в ваших действиях -> где элемент может быть строго типизирован и легко проверить его в вашей модели. (Который является большим, так как ошибки ввода будут отображаться в представлении)

1

Я предпочитаю сильно типизированных ViewData для мои ASP.NET MVC взгляды по различным причинам

Это еще можно сделать конечно. NerdDinner FormviewModels page 6 Я использую его, и он отлично работает. Были некоторые проблемы, которые вы можете найти в моих двух вопросах: here и here .

Как было сказано выше, я не понимаю, почему вы хотели бы использовать codebehind. Если вы хотите, чтобы я рекомендовал вам прочитать общую информацию о структуре MVC и о том, какие представления.

Смежные вопросы