Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to show Display Name for foreign key fields in ASP.NET MVC

I've seen many similar questions, but none seem to have a direct answer. When I attempt to add a Display(Name) attribute to a foreign key field, the Display Name isn't shown on the Create, Edit, Delete and Details form. I tried putting the attribute on the navigation property as well:

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

but that didn't work either.

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;}       
}
like image 938
Randell Lamont Avatar asked Jan 09 '23 20:01

Randell Lamont


1 Answers

The solution is simple. After you add the display attribute in the model, remove the label name from the view.

So Change

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

to

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

in your view. This problem occurs when you scaffold your view.

like image 104
aditya Avatar answered Jan 31 '23 01:01

aditya