Выбирая MVC для разработки нашего нового сайта, я нахожусь в разгаре "лучших практик", разрабатываемых вокруг меня в явном реальном времени. Две недели назад NerdDinner был моим проводником, но с разработкой MVC 2, даже он устарел. Это захватывающий опыт, и я чувствую себя привилегированным в тесном контакте с умными программистами ежедневно.
Прямо сейчас я наткнулся на проблему, на которую я не могу ответить, - со всех блогов, и я хотел бы получить некоторое представление от сообщества. Это о редактировании (см. Действие "Изменить" ). Основная часть материала, учебники и блоги, посвящена созданию и просмотру модели. Поэтому, хотя этот вопрос может и не задавать вопрос, я надеюсь, что вы продолжите обсуждение, внося свой вклад в мое решение о пути развития, который я должен предпринять.
Моя модель представляет пользователя с несколькими полями, такими как имя, адрес и адрес электронной почты. Все имена, по сути, в поле для каждого имени, фамилии и имени. В представлении "Сведения" отображаются все эти поля, но вы можете изменять только один набор полей за раз, например, ваши имена. Пользователь расширяет форму, в то время как другие поля все еще видны сверху и снизу. Таким образом, форма, отправленная назад, содержит подмножество полей, представляющих модель.
Несмотря на то, что это привлекательно для нас, и наши макеты, по разным причинам, следует избегать серьезных MVC-разработчиков. Я читал о некоторых шаблонах и лучших практиках, и кажется, что это не является ключом к парадигме viewmodel == view. Или я ошибаюсь?
В любом случае, NerdDinner диктует использование FormCollection och UpdateModel. Все нулевые поля счастливо игнорируются. С тех пор сообщество MVC отказалось от такого подхода до такой степени, что ошибка в MVC 2 не была обнаружена. UpdateModel не работает без полной модели в вашем формате.
просмотреть модельный шаблон, получивший наибольшую оценку, кажется, является выделенной моделью представления, которая содержит пользовательский объект модели представления и является единственной, проблема дизайна может быть совместима. Это влечет за собой утомительное количество картирования, хотя и облегчается с помощью AutoMapper и идеи Джимми Богарда, которые могут быть или не быть полезными. Он также предлагает соотношение 1:1 между моделью просмотра и представления.
В соответствии с этими парадигмами дизайна я должен создать представление и связанный с ним вид для каждого из моих расширяющихся наборов полей. Модели просмотра будут почти одинаковыми, отличающимися только полями, доступными только для чтения, и представления, которые также содержат много повторяющуюся разметку. Мне это кажется абсурдным. В будущем я могу захотеть одновременно отображать два, более или все наборы полей.
Я очень внимательно прочитаю дискуссию, которую я надеюсь испустить. Большое спасибо заранее.