Я бы порекомендовал вам использовать шаблоны редактора. Таким образом, вам не нужно писать некрасивые циклы в ваших представлениях, а помощники позаботятся о создании собственных имен для полей ввода.
Итак, на вашем главном экране вместо того, чтобы писать весь код, который вы показали просто:
<%: Html.EditorFor(x => x.Addresses) %>
А затем создать шаблон редактора для адреса (~/Views/Home/EditorTemplates/Address.ascx
)
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<YourApp.Models.Address>" %>
<%: Html.TextBoxFor(x => x.Address1) %>
Обратите внимание на имя и расположение шаблона редактора. Местоположение должно быть в папке EditorTemplates
(оно также может быть в ~/Views/Shared/EditorTemplates/Address.ascx
), а имя должно совпадать с именем класса (Address
). ASP.NET MVC позаботится о визуализации шаблона для каждого элемента коллекции Addresses
вашей модели.