Сообщение формы MVC AJAX для родительской модели и списка нескольких дочерних моделей

avatar
Kruti
8 апреля 2018 в 10:57
238
0
1

У меня есть одна родительская модель и список нескольких дочерних моделей. В представлении есть частичное представление для каждой дочерней модели. По умолчанию для каждого ребенка существует одна запись. Динамически я хочу добавить больше записей в дочернюю модель.

Я выполняю следующий процесс.

Вызов Ajax с сообщением формы.

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

Например,

Родительская модель: Компания

Дочерняя модель: Список партнеров и Заводские адреса (список)

введите описание изображения здесь Основной вид для модели компании.

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

Для этого я использую следующий код

function AddPartner() {
        var dataPost = $("#frmCompany").serialize();
        $.ajax({
            url: '@Url.Action("AddPartner", ControllerName.CompanyProfile)',
            data: dataPost,
            contentType: 'application/json; charset=utf-8',
            async: true,
            success: function (response) {
                $("#divPartner").html(response);
            }
        });
    }



 function RemovePartner(id) {
        if (id >= 1) {
            debugger;
            var dataToPost = $("#frmCompany").serialize();
            dataToPost = dataToPost + "&RowNo=" + id;
            $.ajax({
                url: '@Url.Action("RemovePartner", ControllerName.CompanyProfile)',
                data: dataToPost,
                cache: true,
                success: function (response) {
                    $("#divPartner").html(response);
                }
            });
        }
    }

В следующем коде контроллера я использую

public ActionResult AddPartner(List<CompanyPartnerModel> LstCompanyPartnerModel)
        {
           if (LstCompanyPartnerModel== null)
            { LstCompanyPartnerModel= new List<CompanyPartnerModel>(); }

            CompanyPartnerModelobj = new CompanyPartnerModel();
            LstCompanyPartnerModel.Add(obj);
            return PartialView("_Parner", LstCompanyPartnerModel);
        }

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

Проблема в том,, если один партнер и один заводской адрес уже есть в форме. когда я собираюсь добавить еще одного партнера/адреса в контроллере, я получаю два объекта в LstCompanyPartnerModel, один имеет запись, а другой имеет значение null.

и в представлении будет добавлено два партнера вместо одного. Таким образом, всего для партнера отображается 3 текстовых поля вместо двух.

Источник
Nico Haase
8 апреля 2018 в 11:44
1

А какой у тебя вопрос?

Pirate X
8 апреля 2018 в 12:22
0

Было бы здорово, если бы вы могли предоставить минимальный, полный и проверяемый пример.

Kruti
8 апреля 2018 в 17:06
0

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

Ответы (0)