InputTagHelper помогает нам писать код в стиле декларативного программирования.Если вам трудно динамически визуализировать различные поля с помощью отражения, не стесняйтесь использовать @Html.Xyz
эквивалент программным способом .
Ваш код можно переписатькак показано ниже:
@foreach(var property in typeof(Foo).GetProperties()) {
<p>
<div class="row" >
<div class="col-md-3">
@Html.Label(@property.Name)
</div>
<div class="col-md-3">
@Html.Editor(@property.Name, new { htmlAttributes = new{ @class="form-control" } })
@Html.ValidationMessage(@property.Name, new { htmlAttributes = new { @class="text-danger"} })
</div>
</div>
</p>
}
Демонстрация:
Я создаю пользовательское Foo DTO, как показано ниже:
public class Foo{
public int Id {get;set;}
public string Name {get;set;}
public string Address {get;set;}
public DateTime UpdatedAt{get;set;}
}
И отображается форма:
![enter image description here](https://i.stack.imgur.com/BeoJf.png)