Хорошо, что вы комбинируете функциональность с использованием частичных представлений, поскольку большую часть времени адрес отображается только одним способом.
Один из способов правильного отображения формы - использование шаблонов MVC2 EditorFor и DisplayFor.Переместите частичное представление для формы в /Views/Shared/EditorTemplates/Address.ascx (и часть, предназначенную только для отображения, если она есть, в /Views/Shared/DisplayTemplates/Address.ascx).
Как только это будетготово, вы можете использовать его одним из двух способов.
Вариант 1:
Вы можете редактировать вашу ViewModel следующим образом:
[UIHint("Address")]
public Address InternalAddress { get; set; }
[UIHint("Address")]
public Address PublicAddress{ get; set; }
UIHint указывает шаблонизатору использовать представление «Address» в папке Shared / EditorTemplates.
Затем вы можете использовать шаблон EditorFor в своем представлении без изменений:
<%: Html.EditorFor(model => model.InternalAddress) %>
Вариант 2:
Просто укажите имя шаблона в EditorFor в представлении:
<%: Html.EditorFor(model => model.InternalAddress, "Address") %>