У меня есть одна родительская модель и список нескольких дочерних моделей. В представлении есть частичное представление для каждой дочерней модели. По умолчанию для каждого ребенка существует одна запись. Динамически я хочу добавить больше записей в дочернюю модель.
Я выполняю следующий процесс.
Вызов 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 текстовых поля вместо двух.
А какой у тебя вопрос?
Было бы здорово, если бы вы могли предоставить минимальный, полный и проверяемый пример.
Я работаю с одним представлением, двумя частичными представлениями, динамически добавляю больше контроля в частичное представление. Я добавил свой код в описание.