无法获取显示名称注释以在scaffolded dropdownlist

时间:2015-08-02 22:10:38

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

我有一个名为Contract的实体,以及合同中的一个属性如下:

[Display(Name = "Contract Type")]
[Required]
public int ContractTypeId { get; set; }

ContractTypeId是与另一个实体相关的外键。

如果我为Contract实体构建一个控制器和视图,它会为ContractTypeId生成一个下拉列表(应该如此)并正确填充 - 但它不会应用正确的标签“Contract Type”,而是仍然将ContractTypeId显示为标签并忽略数据注释。

这也发生在一个新项目中 - 任何想法?

1 个答案:

答案 0 :(得分:1)

我知道这已经过时了,但我遇到了同样的问题并弄明白了我的错误。如果其他人遇到同样的问题,这就是我的解决方案。

检查您的视图文件,脚手架可能会自动为标签添加一个字符串。在下面的示例中,脚手架添加了" CustomerId"作为下拉列表的标签。如果您删除" CustomerId"字段,然后它将获取您在显示中设置的标签。

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