@model HelloWorldMvcApp.SampleViewModel
@using (Html.BeginForm())
foreach(var property in Model.GetType().GetProperties())
var displayAttribute = (System.ComponentModel.DataAnnotations.DisplayAttribute)property.GetCustomAttributes(typeof(System.ComponentModel.DataAnnotations.DisplayAttribute), false).FirstOrDefault();
var propertyDisplayName = displayAttribute?.Name ?? property.Name;
<label>@propertyDisplayName</label>
<input type="text" name="@property.Name" id="@property.Name" value="@property.GetValue(Model)"/>