Быстрый проект, созданный со следующей моделью.
public class TestModel {
public TestModelA A { get; set; }
public string Name { get; set; }
}
public class TestModelA {
public TestModelB B { get; set; }
public string Name { get; set; }
}
public class TestModelB {
public TestModelC C { get; set; }
public string Name { get; set; }
}
public class TestModelC {
public TestModelD D { get; set; }
public string Name { get; set; }
}
public class TestModelD {
public TestModelE E { get; set; }
public string Name { get; set; }
}
public class TestModelE {
public string Name { get; set; }
}
Вот мое редактирование, которое по сути совпадает с вашим
[HttpPost]
public ActionResult Edit(FormCollection form) {
IValueProvider vpFrom = form.ToValueProvider();
Models.TestModel t = new Models.TestModel();
TryUpdateModel(t, null, null, null, vpFrom);
return View(t);
}
Все это работает точно так же, как ожидалось со всемимодели созданы правильно.Единственная проблема, которую я вижу, это то, что вы, возможно, не передаете те же имена свойств обратно из формы.(например, без использования <%: Html.TextBoxFor(model => model.A.B.C.CName)%>
)
Для моделей требуются конструкторы без параметров.Но я уверен, что вы получили бы ошибку об этом - если только вы не потребляете ошибку.
Так что без дополнительной информации о вашем проекте будет трудно помочь, поскольку базовая настройка дает ожидаемые результаты.