У меня есть viewmodel BeerNamePartialVM, у которого есть свойство с атрибутом [Display (Name = "")], которое, похоже, не работает. Я также включил мою базовую модель, которая также имеет свойство с атрибутом [Display (Name = "")], который работает:
public class BeerNamePartialViewModel : IPartialPropertySearch
{
[Required(ErrorMessage = "This field is required")]
[Display(Name = "Name or partial name")]
//[DisplayName("Name or partial name")]
public string PartialName { get; set; }
...
}
public class BierProperties
{
[Required, StringLength(50), Display(Name = "Name")]
public string Naam { get; set; }
...
}
Два выделенных текста генерируются с помощью показанных функций DisplayNameFor HtmlHelper ниже:
@model MVCBierApplication.Interfaces.IPartialPropertySearch
@Html.DisplayNameFor(f => f.PartialName)
@Html.EditorFor(f => f.PartialName)
@Html.ValidationMessageFor(f => f.PartialName)
...
@{Beer emptyModel = new Bier();}
@if (Model.Results != null && Model.Results.Count() != 0)
{
<thead>
<tr>
<td>@Html.DisplayNameFor(h => Model.emptyModel.Naam</td>
...
</tr>
...
emptyModel - это пустая модель типа Beer, которую я использую для построения заголовка таблицы. Это было необходимо, потому что мое представление имеет интерфейс IPartialPropertySearch в качестве модели, который возвращает результаты в IEnumerable типа Object вместо Beer. Это было сделано, потому что я хочу повторно использовать свой код для моделей, отличных от Beer.
Результат выглядит следующим образом (это мой первый вопрос, поэтому у меня не было достаточно репутации для отображения изображений в посте):
Обратите внимание на выделенные метки. Кажется, что метка над текстовым полем игнорирует атрибут [Display] его свойства, а метка в заголовке таблицы работает, как и ожидалось.
Сначала я также попытался использовать [DisplayName ("name")], сначала сам по себе, а затем даже вместе с [Display (Name =)], но ни один из них не работает. Я перезапустил свой сервер IIS, очистил кеш браузера и запустил приложение в четырех разных браузерах, каждый из которых дает одинаковый результат.
Атрибут [Обязательный] работает, когда я отправляю форму без ввода имя, показывается сообщение об ошибке, установленное в теге [required]. Единственными свойствами, которые игнорируются, являются те, которые изменяют имя:
Я также включил ссылку в репозиторий проекта на случай, если мои изображения не было достаточно ясно, или если вы хотите проверить это самостоятельно. Некоторые части могут быть на голландском языке, но я думаю, что это должно быть достаточно ясно. Также в хранилище включен файл SQL для воссоздания базы данных, которую я использую.
Спасибо за ваше время.