显示(名称=“”)仅适用于某些情况

本文关键字:适用于 情况 名称 显示 | 更新日期: 2023-09-27 18:24:35

这个MVC 5应用程序来自数据库优先的方法。因此,添加了一个分部类来处理任何验证等。

由于某些原因,[Display(Name=")]将无法处理数据库中的任何外键字段(视图中有SelectList)。它适用于所有其他领域。实际呈现的名称是"创建/编辑"页面上数据库中的"campaign_id"列。在索引/详细信息/删除页面上,它是"名称"(大写N,不符合我们的任何命名惯例)。

public class mailMetadata
     {
         [Required]
         [Display(Name = "Campaign")]
         public int campaign_id;
 }

我也尝试过使用DisplayName("),但也没有成功。

视图绘制的更新代码

创建/编辑

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

详细信息/索引/删除

@Html.DisplayNameFor(model => model.campaign.campaign_id)

我正在寻求对为什么会发生这种情况的理解,以及如何补救的帮助。关于这个话题有很多问答,但似乎都不起作用。

显示(名称=“”)仅适用于某些情况

您正在使用@Html.LabelFor()的重载,该重载具有作为要显示的标签文本的第二个参数。请参阅文档。将其更改为

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