Есть ли способ иметь сильно типизированные веб-формы, похожие на MVC Views? - PullRequest
3 голосов
/ 29 ноября 2010

Я только недавно влюбился в мир ASP.NET MVC, и одна из моих любимых частей - это то, что у меня могут быть строго типизированные представления, и когда я отправляю данные на сервисный уровень, всенужно отправить объект модели и покончить с этим.

Это резкий контраст с относительно крупномасштабным приложением WebForms, которое я создал в прошлом году.Проблема с этим приложением заключалась в том, что клиенту требовалось (требовалось) более 150 полей на таблицу для двух их таблиц (все более разочаровывающим было то, что поля «имена» были числами, но это уже другая история).

Я обнаружил, что делаю (во многих формах) следующее:

Dim bfs As New BusinessForSale

With bfs
    .123 = txt123.Text
    .124 = txt124.Text
    ''# etc
    ''# etc
    ''# 148 more bloody times
End With
''# Yes it was that frigging frustrating.

Затем я могу отправить объект bfs в базу данных.

Теперь в MVC модель заботится обо всехэтого для меня.

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

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

Это может дать вам несколько идей о том, как реализовать нечто похожее на строго типизированные представления.

1 голос
/ 29 ноября 2010

Вы могли бы по существу построить эти компоненты для веб-форм;они не существуют в существующей структуре как есть.У меня была та же идея, зачем писать весь этот код, когда какой-то рефлексивный процесс может сделать это для меня.Я пытался внедрить это в мою инфраструктуру MVP для Nucleo (http://nucleo.codeplex.com),, и это будет одним из моих фокусов (даже постбэков AJAX тоже). Но я отступаю, извините за плагин.* В любом случае, вы можете построить отражающую часть, которая сопоставляет идентификатор элемента управления с именем свойства в классе. Он не может быть таким же автоматическим, как вы видите в ASP.NET MVC (из-за основных различий в сантехнике),но это может быть что-то простое, например, вызов метода, который запускает этот процесс.

HTH.

...