Один из вариантов - использовать частичное представление, как упоминает @Ufuk.
Лучший способ IMO - использовать шаблон редактора, используя встроенные соглашения MVC.
Вместоотдельные свойства для A1, A2 и т. д. Поместите их в IEnumerable<Something> Somethings
.
. Затем сделайте это в своем представлении:
@Html.EditorFor(model => model.Somethings)
Затем создайте шаблон редактора.с именем Something.cshtml
и поместите его в Shared\EditorTemplates
, и MVC сделает «неявный» для каждого цикла и отобразит все, что находится в шаблоне редактора для модели:
<div class="editor-field">
@Html.EditorForModel()
@Html.ValidationMessageForModel()
</div>
Не используйте цикл foreach - это ненужный и предотвратимый код супа.
Шаблон редактора HTML идентичен частичному, строго типизированному и всем.Различие заключается в соглашении о поиске файла, в то время как частичные представления нуждаются в явном частичном имени частичного представления.
Что это означает, если вы измените тип модели, он будет искать этот шаблон на основе моделиtype, допускающий очень мощный подход, основанный на соглашениях - вот что такое MVC.