ASP.NET MVC DefaultModelBinder с вложенными списками

Любой код нуждается в комментариях, я пытаюсь объяснить причину и работу каждой функции, которую я пишу, в 1 или 2 строки.

Код, который объясняет себя, существует только в идеальном мире, всегда есть какой-то странный взлом или причина сделать что-то быстрое, а не грязное. Лучше всего помнить, комментировать, ПОЧЕМУ код делает то, что делает, хороший код объясняет ЧТО он делает в 99% случаев.

Напишите что-нибудь простое, например, фрагмент кода, который может решить головоломку Судоку (3 достаточно простых цикла while), и попробуйте прочитать это 3 месяца спустя. Вы обязательно найдете что-то не совсем понятное.

13
задан Brant Bobby 17 June 2009 в 20:56
поделиться

1 ответ

В конце концов я понял, почему DefaultModelBinder не использует свойства WorkUnit : потому что они не были свойствами , это были поля . DefaultModelBinder работает только со свойствами. Изменение определения класса WorkUnit и Project для использования полей заставило все щелкнуть:

public class Project {
    public IList<WorkUnit> WorkUnits { get; set; }
    public string Name { get; set; }
}

public class WorkUnit {
    public DateTime Date { get; set; }
    public decimal RegularHours { get; set; }
    public decimal OvertimeHours { get; set; }
}

(Примечание: исходный код в исходном вопросе имел Project.Name, определенный как поле, в мой код - это свойство. Вот почему список проектов заполнялся, а рабочие единицы - нет.)

13
ответ дан 2 December 2019 в 00:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: