частичные представления в ASP.NET MVC? - PullRequest
2 голосов
/ 27 июля 2010

У меня есть три таблицы базы данных, связанные, например: компания (один - один) Контактный (один-один) адрес,

Мне нужно создать компанию, затем создать контакт для компании, затем создать адресдля контакта на одной странице (чтобы было проще для пользователя).

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

Есть много способов, но как лучше всего добиться этого с помощью ASP.NET MVC ??

спасибо

1 Ответ

0 голосов
/ 27 июля 2010

ИМХО, наилучшим способом было бы иметь PartialView для каждой таблицы, а для представления - модель представления формы, в которой каждый объект таблицы имеет свойство

FormViewModel
    Company company {get;set;}
    Contact contact {get;set;}
    address address {get;set;}

. Вы бы вернули вышеупомянутую модель.к представлению в контроллере return View(FormViewModel);

Затем, когда вы отрисовываете каждый фрагмент, вы передаете соответствующую модель.

Html.RenderPartial("ContactEntry", Model.contact);

Когда вы отправляете форму, вы затем делаете TryUpdateModel, чтобы получитьзначений и начните сохранение в свой слой данных.

РЕДАКТИРОВАТЬ В ответ Роберту

Сэму, вам также необходимо убедиться, что оба поля включены / отключены в качестве данныхзаполнен. Например, у вас не может быть контакта без компании в первую очередь.

Вы можете, если вас достаточно уволили, проверить данные по мере их заполнения. Таким образом, пользователь завершаетформы вы активируете поля без сохранения в первую очередь.Вы можете сделать это с помощью jQuery и даже валидаторов на стороне клиента, которые вы можете написать в MVC.

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