2014-09-25 61 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