you have couple of things done wrong, first of all your models should be like:
class CustomerDetail
{
public string Address{get;set;}
}
class Customer
{
public string Name{ get; set; }
public CustomerDetail CustomerDetail{ get; set; }
}
and in your view you will need to create hidden fields for each CustomerDetail property like:
@using (Html.BeginForm("ActionName", "ControllerName", new { }, FormMethod.Post, new { }))
{
@Html.HiddenFor(model => model.CustomerDetail.Address)
}
This should work for you correctly.