2014-09-25 51 views
1

此MVC 5应用程序来自数据库优先方法。因此,添加了部分类以处理任何验证等。Display(Name =“”)仅适用于某些特定的

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

public class mailMetadata 
    { 

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

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

FOR视图呈现

创建/编辑

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

详细更新的代码/索引/删除

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

我要寻找为什么发生这种情况的认识,以及如何补救的帮助。关于这个话题有很多Q/A,但没有一个可以工作。

+0

包括您是如何使其在视图 – 2014-09-25 00:08:09

+0

@StephenMuecke更新,包括它是如何在视图中被渲染。 – Taylor 2014-09-25 00:41:01

回答

1

您正在使用@Html.LabelFor()的过载,其第二个参数为标签文本显示为Refer docuemntation。将其更改为

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

哇。太好了谢谢。任何想法为什么DisplayNameFor不会在细节/删除/索引中工作?他们正在使用DisplayNameFor。 – Taylor 2014-09-25 00:54:08

+0

应该没问题。你确定'model => model.campaign.campaign_id'是正确的(即你的模型有一个'campaign'属性'campaign_id')。如果是'campaign'null? (在这种情况下,后备将是“campaign_id”) – 2014-09-25 01:01:10

+0

这是问题所在。这是去'运动'的财产,并在名称上含糊不清。谢谢! – Taylor 2014-09-25 02:06:50

相关问题