4

我见过很多类似的问题,但似乎都没有直接的答案。当我尝试将 Display(Name) 属性添加到外键字段时,显示名称未显示在“创建”、“编辑”、“删除”和“详细信息”表单上。我也尝试将属性放在导航属性上:

[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;}       
}
4

2 回答 2

8

解决方案很简单。在模型中添加显示属性后,从视图中删除标签名称。

所以改变

            @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" })

在你看来。当您为视图搭建脚手架时会出现此问题。

于 2016-02-12T08:32:18.950 回答
1

它不适用于导航属性,因为它从未直接编辑过。您正在使用相关实体上的外键属性或单个属性,而不是实体本身。

但是,假设您实际上使用的是该属性,而不是视图中的导航属性,那么这应该放在外键属性上,即:

@Html.EditorFor(m => m.GenderID)
于 2015-02-24T19:33:03.127 回答