c# - 如何更改外键的显示标签

标签 c# asp.net-mvc entity-framework

我有 Employee,其中 gender_id 是 FK 到 Gender 表。并使用 EF 生成类来访问数据库。

我创建了一个元数据类型,这样我就可以更改页面上的标签显示。

[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 并没有像您在图片上看到的那样改变。

enter image description here

所以我认为还需要为 Gender 创建一个元数据,但仍然没有显示在页面上。

这是自动生成的 View ,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>

最佳答案

将自动生成的 View 代码添加到问题后,意识到问题是 LabelFor 还包括标签的名称。

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

删除 "gender_id" LabelFor 后开始使用 MetaData 别名。

Of course this will bring the problem if I autogenerate the view again, the changes will be lost.

关于c# - 如何更改外键的显示标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48503662/

相关文章:

c# - 在我的电子邮件发送页面 asp.net 上锁定屏幕

c# - 如何在不装箱的情况下比较 System.Enum 和枚举(实现)?

c# - LINQ to Entities 无法识别该方法并且无法将此方法转换为存储表达式

c# - 在 LINQ 中转换 OrderBy Case 语句

c# - 如何从 SQL 中获取项目,使用 linq to sql,其中日期是从今天到提前 30 天,并作为列表返回

c# - 使用 javascript 从代码隐藏获取 DataTable 值到客户端

c# - webdriver 模态窗口 click() 不工作

c# - 用MVC和Web API注册路由的方式之间有什么区别?

c# - 更改日期时间错误消息

c# - 我应该如何在 EF 中定义一个可以采用各种数据类型的字段?