Pass the OverallModel
to your partials so that the controls will be correctly named for posting back to OverallModel
. Currently you would have controls with name="FirstName"
but they need to be name="Personal.FirstName"
@Html.Partial("Personal", Model)
and change the partials to suit
@model OverallModel
....
@Html.TextBoxFor(m => m.Personal.FirstName)
As an alternative, you can also pass the prefix to the partial
@Html.Partial("Address", Model.Personal, new ViewDataDictionary { TemplateInfo = new TemplateInfo { HtmlFieldPrefix = "Personal" }})