I have a Person class in the Model and want to assign 15 of its attributes to labels in the View. The View shouldn't access the Model. That means the Controller will handle creating the Person. How does the View get these Person attributes from the Controller? If the Controller contains a member of Type Person, the View can do something like:
lblFirstName.Text = theController.Person.FirstName;
lblLastName.Text = theController.Person.LastName;
lblCity.Text = theController.Person.City;
However, the View is still directly accessing the Model (ie, Person). The Controller could have its own Person class, copy all of the Model's Person attributes into it and have the View use syntax as above. But there's much duplication in that design. Any suggestions?