1: N форма взаимосвязи

#asp.net-mvc-3 #viewmodel

#asp.net-mvc-3 #viewmodel

Вопрос:

Я работаю над формой, и я в некотором замешательстве относительно того, как мне следует реализовать функцию добавления нового адреса. В идеале добавление нового адреса должно создавать новые входные данные для адреса на той же странице, а кнопка сохранить сохранит (либо добавит, либо обновит) всю информацию на странице.

Вот макет того, как будет выглядеть форма:

введите описание изображения здесь

Прямо сейчас эта форма существует в строго типизированном представлении, которое имеет ViewModel, который выглядит следующим образом:

 public class PersonInputViewModel
{
    public string FirstName {get;set;}
    public string LastName {get;set;}
    public string MiddleName {get;set}

    public AddressModel PrimaryAddress {get;set;}
    public AddressModel SecondaryAddress {get;set;}
}
  

Теперь с этой моделью представления я действительно не знаю, как мне следует обрабатывать новое добавление адреса, поскольку прямо сейчас эта модель представления допускает только два адреса. Если бы я избавился от PrimaryAddress и SecondaryAddress и выбрал список AddressModels, как бы я приступил к созданию входных данных для адресов в представлении?

Комментарии:

1. В чем конкретно заключается ваш вопрос?

2. я немного отредактировал ее в надежде, что мой вопрос прояснится немного больше.

Ответ №1:

Возможно, следующий пост в блоге покажется вам полезным. Это еще более общее решение, поскольку оно применяется к списку объектов (не только к первичному и вторичному адресам), но концепция может быть такой же. Вы бы определили частичное представление, которое будет содержать необходимые поля для редактирования адреса, и когда пользователь решит добавить дополнительный адрес, используйте AJAX для ввода дополнительных полей в существующую форму.