Я использую Telerik MVC Grid и настроил его для редактирования в пакетном режиме http://demos.telerik.com/aspnet-mvc/grid/editingbatch. Я пытаюсь отредактировать одно из моих объектов "Состояние", в котором есть Список городов, где Город является другим объектом. Вот как выглядит государственное образование.
public class State {
...Some Scalar Properties
public virtual List<City> Cities { get; set; } //Navigation Property
public State() {
Cities = new List<City>();
}
}
Сущность «Мой город» указывает на штат, как указано ниже.
public class City {
... Some Scalar Properties
public virtual State State { get; set; } //Navigation property
}
Я использую эту модель на одной из моих страниц cshtml примерно так
@(Html.Telerik().Grid<State>()
.Name("tlkStateGrid")
.Editable(e => e.Mode(GridEditMode.InCell).DisplayDeleteConfirmation(false))
.ToolBar(t => {
t.Insert().ButtonType(GridButtonType.Image);
t.SubmitChanges().ButtonType(GridButtonType.Image);
})
...Some More of code here.
В моем контроллере я обрабатываю пакетные обновления обычным способом.
public ActionResult _SaveChanges(IEnumerable<State> inserted, IEnumerable<State> updated, IEnumerable<State> deleted) {
.....
}
Когда я пытаюсь отредактировать объект State с помощью пакетного редактирования Telerik Grid, параметр (IEnumerable updated) вышеупомянутого действия контроллера имеет записи для всех состояний, которые были изменены. У штатов, однако, есть список городов с одним городом (который является нулевым), даже если в штате нет городов.
Таким образом, суть в том, что я не создал ни один Город в какой-либо части моего кода, но когда я получаю Штаты в качестве параметра для действия контроллера, указанного выше, в списке городов появляется пустой город. Почему это происходит?