Я могу успешно опубликовать и связать родительский объект (ObjectA), а также все его свойства типа данных. как свойство, которое представляет собой список сложных объектов (ObjectB). Однако я не могу связать список объектов (ObjectC), содержащихся в ObjectB.
Поскольку мой код длинный и сложный (а также конфиденциальный), я приведу простой пример. того, что я пытаюсь сделать.
Мои классы и метод-обработчик:
Код: Выделить всё
// Classes
public class ObjectA
{
public int Id { get; set; }
public IList ObjectBList { get; set; }
}
public class ObjectB
{
public int Id { get; set; }
public IList ObjectCList { get; set; }
}
public class ObjectC
{
public int Id { get; set; }
public string Name { get; set; }
}
// Handler method
public async Task OnPostDoSomethingAsync(ObjectA objectA)
{
// Do Something
}
У меня есть различные типы полей ввода, но в этом примере я просто использую «скрытые».
Код: Выделить всё
@for (var i; i < @Model.ObjectBList.Count(); i++)
{
var objectCList = @Model.ObjectBList[i].ObjectCList.Where(z => z.Id < 4); // I need to perform some filtering logic in multiple places, so create a temp object
@for (var z; z < objectCList.Count(); z++)
{
}
Код: Выделить всё
$.post('/Page?handler=DoSomething', $(#myFormId).serialize(), function () { alert('success'); });
Код: Выделить всё
Id: 1
ObjectB[0].Id: 1
ObjectB[0].ObjectC[0].Id: 1
ObjectB[0].ObjectC[1].Id: 2
ObjectB[1].Id: 2
ObjectB[1].ObjectC[0].Id: 1
ObjectB[1].ObjectC[1].Id: 2
Важно отметить, что если я закомментирую свой код CSHTML, связанный с для привязки ObjectC и просто привязки ObjectA и ObjectB, моя полезная нагрузка выглядит следующим образом:
Код: Выделить всё
Id: 1
ObjectB[0].Id: 1
ObjectB[1].Id: 2
Я ожидаю, что делаю что-то не так с тем, как я называю свои поля ввода для ObjectC, и результирующая полезная нагрузка неверна. Будем признательны за любые рекомендации по правильному синтаксису для такого сценария. Если мой подход верен, то я предполагаю, что у меня есть опечатка или подобная проблема, которую мне нужно найти (пока ничего не найдено).
Подробнее здесь: https://stackoverflow.com/questions/781 ... ional-nest