2010-08-14 178 views
1

只是想知道爲什麼我得到編譯時錯誤有效:「屬性‘DisplayColumn’不在此聲明類型有效的,所以只能在‘類’的聲明有效。」屬性'DisplayColumn'在此聲明類型上無效。只有在「類」的聲明

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.ComponentModel.DataAnnotations; 

namespace MyApplication.Models.DataAnnotations 
{ 

    [MetadataType(typeof(AppUser_DataAnnotations))] 
    public partial class AppUser 
    { 

    } 

    public class AppUser_DataAnnotations 
    { 
     [DisplayColumn("Name")] 
     public string FirstName { get; set; } 
    } 
} 

我在上面使用覆蓋mvccontrib呈現網格列標題。任何想法爲什麼我得到編譯時錯誤?任何幫助將不勝感激。

回答

2

您得到編譯時錯誤的原因是因爲[DisplayColumn]屬性只能應用於類級而不應用於類的屬性。您可能會將此屬性與[DisplayName]混淆。

+0

Ohhh my bad。謝謝!但是我沒有在任何地方找到[DisplayName]。我是否缺少一些命名空間?謝謝。 – Gurdeep 2010-08-14 10:46:25

+0

找到它...使用System.ComponentModel;是缺少的。不過,我沒有得到頭部重寫。 – Gurdeep 2010-08-14 10:49:49

4

對於誰在以後遇到這個問題的人,也許這可以幫助:

我得到了同樣的問題,如上所述。正如其他答案中所述,使用DisplayName屬性和包含System.ComponentModel命名空間非常重要。除此之外,該屬性必須具有getter(和setter)才能使屬性起作用。這條錯誤信息有點令人困惑。