我有一个名为Contract的实体,以及合同中的一个属性如下:
[Display(Name = "Contract Type")]
[Required]
public int ContractTypeId { get; set; }
ContractTypeId是与另一个实体相关的外键。
如果我为Contract实体构建一个控制器和视图,它会为ContractTypeId生成一个下拉列表(应该如此)并正确填充 - 但它不会应用正确的标签“Contract Type”,而是仍然将ContractTypeId显示为标签并忽略数据注释。
这也发生在一个新项目中 - 任何想法?
答案 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>