Я использую цикл, как показано ниже, для визуализации метки и редактора для каждого свойства в модели представления:
@{
var properties = ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForEdit && !pm.IsComplexType && !ViewData.TemplateInfo.Visited(pm));
}
@foreach (var prop in properties)
{
<li>
<div class="form-line">
@{
if (prop.HideSurroundingHtml)
{
@Html.Editor(prop.DisplayName ?? prop.PropertyName)
}
else
{
@Html.Label((prop.IsRequired ? "* " : "") + (prop.DisplayName ?? prop.PropertyName))
@Html.Editor(prop.PropertyName)
}
}
</div>
</li>
}
И модель:
[Required]
[Display(Name = "Status")]
[UIHint("DropDown", "MVC", "SelectListName", "StatusSelectList")]
public Guid StatusId { get; set; }
[Required]
[Display(Name = "Emp Number")]
public string RefNum { get; set; }
[Required]
public string Surname { get; set; }
Когда я использую отображаемое имя "Emp. No.", метка не отображается вообще. Когда я использую отображаемое имя «Emp. Number», отображается только метка «Number». Только когда я использую отображаемое имя «Emp Number», без каких-либо полных остановок, мой полный, ожидаемый ярлык будет обработан. Что здесь происходит?