更改外键MVC的显示名称

时间:2014-10-17 23:56:06

标签: c# asp.net-mvc asp.net-mvc-5 entity-framework-6

在我的MVC应用程序中,我有一个型号属于某种类别',另一种型号。
当显示索引视图时,此模型的名称和类别名称都被称为'名称',如何将显示的类别名称更改为名称以外的名称?

[Table("Product")]
    public partial class Product
    {
        public int ProductId { get; set; }

        [Required]
        public string Name { get; set; }

        [Required]
        public string Description { get; set; }

        public int CategoryId { get; set; }

        public decimal Price { get; set; }

        public virtual Category Category { get; set; }
    }

我尝试在CategoryId和Category之上使用[DisplayName ("New Name")],这似乎不起作用,有人可以告诉我吗?

由于

1 个答案:

答案 0 :(得分:0)

使用scaffolding生成视图时可能会发生这种情况。它发生在下拉列表用于选择外键的地方。与其他生成的标签不同,这些标签会传递一个附加参数“labelText”,它会覆盖您在模型属性中设置的DisplayName。删除其他参数或将其更改为要显示的文本。我在下面的示例代码中添加了文本(ChangeOrRemoveMe)。

    <div class="form-group">
        @Html.LabelFor(model => model.CategoryID, "CategoryID(ChangeOrRemoveMe)", htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownList("CategoryID", null, htmlAttributes: new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.CategoryID, "", new { @class = "text-danger" })
        </div>
    </div>