3

Я видел много похожих вопросов, но ни один из них не имеет прямого ответа. Когда я пытаюсь добавить атрибут Display (Name) в поле внешнего ключа, отображаемое имя не отображается в форме Create, Edit, Delete и Details. Я пытался ставить атрибут на свойства навигации, а также:Как показать отображаемое имя для полей внешнего ключа в ASP.NET MVC

[Display(Name="Gender")] 
public virtual Gender Gender {get; set;} 

, но это не сработало.

public class Person 
{ 
    public int ID {get; set;} 
    public string FirstName {get; set;} 
    public string LastName {get; set;} 
    [Display(Name="Gender")] 
    public int GenderID {get; set;} 

    public virtual Gender Gender {get; set;} 
} 


public class Gender 
{ 
    public int ID {get; set;} 
    public string GenderName {get; set;} 

    public virtual ICollection<Person> People {get; set;}  
} 

ответ

1

Это не будет работать в навигационной собственности, поскольку это никогда не редактируется напрямую. Вы либо используете свойство внешнего ключа, либо отдельные свойства связанного объекта, а не самого объекта.

Однако, что должно было сработать размещены на ключевой собственности иностранного, при условии, что вы на самом деле с помощью этого свойства, а не навигационное свойство с вашей точки зрения, т.е .:

@Html.EditorFor(m => m.GenderID) 
+0

Привет Крис, спасибо за ваш ответ. Когда я помещаю атрибут в свойство внешнего ключа, он по-прежнему не отображает отображаемое имя. Выпадающий список показан как ожидалось. –

6

Решение простое. После добавления атрибута отображения в модели удалите имя метки из представления.

Так Изменение

  @Html.LabelFor(model => model.GenderID, "GenderID", htmlAttributes: new { @class = "control-label col-md-2" }) 

к

  @Html.LabelFor(model => model.GenderID, htmlAttributes: new { @class = "control-label col-md-2" }) 

в вашу точку зрения. Эта проблема возникает, когда вы поднимаете свой вид.

+0

Кажется странным, что строительные леса жестко кодируют текст метки в вызове LabelFor, учитывая, что вспомогательный метод предназначен для динамического вытягивания этого текста, но вы правы @aditya. –

+0

спасибо @PaulAngelno Пожалуйста, отметьте это как ответ, если это поможет! – aditya

+0

Это был не мой вопрос, поэтому я не могу отметить это как ответ, но я уже его поддержал. –

 Смежные вопросы

  • Нет связанных вопросов^_^