ASP.NET MVC - сложные объекты и формы - PullRequest
3 голосов
/ 14 января 2009

Допустим, у нас есть объект домена, такой как следующий

public class Person
{
   public string Name { get; set; }
   public IList<PhoneNumber> PhoneNumbers {get; set; }
   public IList<Address> Addresses { get; set; }
}

Персона недействительна, пока не введены имя, номера телефонов и адреса. Как вы, ребята, справляетесь с этим, используя ASP.NET MVC и формы ...

Я думал, что вы могли бы сериализовать человека в сеанс и иметь несколько представлений для редактирования имени, добавления телефонных номеров, добавления адресов - действия контроллера изменили бы человека в сеансе, а окончательное действие Сохранить передало бы в базу данных. *

Мне не очень нравится иметь несколько просмотров и использовать сеанс. Другим вариантом будет иметь одну очень сложную форму, которая может иметь «динамические» секции элементов для добавления / удаления телефонных номеров, адресов в браузере до публикации в действии сохранения.

Что все делают со сложными объектами и редактируют через формы?

Спасибо!

1 Ответ

2 голосов
/ 14 января 2009

Я бы обычно использовал маршрут "динамическая секция".

Однако я бы не сделал вашу проверку настолько строгой, чтобы пользователь не смог сохранить незавершенную работу. Список телефонных номеров, адресов и т. Д. Может занять некоторое время для ввода. Для конечного пользователя полезно иметь возможность время от времени сохранять свою работу в случае потери интернет-соединения или чего-то еще. Вероятно, неплохо бы время от времени автоматически сохранять записи через AJAX, если ваша форма ввода данных достаточно велика. (Как и в Gmail.) Поэтому ваша модель должна позволять им время от времени сохранять незавершенную работу и выполнять полную проверку только тогда, когда они говорят, что они «выполнены».

...