ИМХО, наилучшим способом было бы иметь 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.