我有Employee
,其中gender_id为FK到Gender
表格。并使用EF生成访问数据库的类。
我创建了一个MetaData类型,因此我可以更改页面上的标签显示。
[MetadataType(typeof(EmployeeMetaData))]
public partial class Employee
{
}
public class EmployeeMetaData
{
[Display(Name = "Nombre2")]
public string first_name { get; set; }
[Display(Name = "Apellido")]
public string last_name { get; set; }
[Display(Name = "Sexo")]
public Nullable<int> gender_id { get; set; }
}
但是gender_id
并没有像你在图片中看到的那样改变。
所以我认为还需要为Gender
创建一个MetaData,但仍然没有在页面上显示。
这是自动生成的视图,last_name
正常,但gender_id
不会
<div class="form-group">
@Html.LabelFor(model => model.last_name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.last_name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.last_name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.gender_id, "gender_id", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("gender_id", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.gender_id, "", new { @class = "text-danger" })
</div>
</div>
答案 0 :(得分:3)
在问题中添加自动生成的View代码后,意识到问题是LabelFor
还包含标签的名称。
@Html.LabelFor(model => model.gender_id,
"gender_id",
htmlAttributes: new { @class = "control-label col-md-2" }
)
删除"gender_id"
LabelFor后开始使用MetaData别名。
当然,如果我再次自动生成视图,这将带来问题,更改将会丢失。