2011-06-02 63 views
0

我得到的錯誤是:ASP.net C#錯誤,CS1061: 'Web2Print.ArtworkLabel' 不包含 'ID',沒有擴展方法 'ID' 的定義

CS1061:「Web2Print。 ArtworkLabel」不 不包含用於定義‘ID’和 沒有擴展方法‘ID’接受 類型的 第一個參數‘Web2Print.ArtworkLabel’可以是發現 (是否缺少使用 指令或程序集引用? )

就行:

string FormVal = Request.Form["label" + TheLabel.ID]; 

的代碼塊中的線是在是:

public void SaveData(object sender, EventArgs e) 
{ 
    // New data record 
    ArtworkData DataRecord = new ArtworkData(DataID); 
    DataRecord.LoadTemplate(); 
    DataRecord.Template.LoadLabels(); 
    DataRecord.LoadDataLabels(); 

    // Delete all from DB 
    ArtworkCommon.DeleteDataLabels(DataID); 

    ArrayList LabelsCollection = new ArrayList(); 

    // Loop through all the fields 
    foreach (ArtworkLabel TheLabel in DataRecord.Template.Labels) 
    { 
     string FormVal = Request.Form["label" + TheLabel.ID]; 

ArtworkLabel定義是:

/// <summary> 
/// A template label 
/// </summary> 
public class ArtworkLabel 
{ 
    public bool Loaded { get; set; } 
    public int ID { get; set; } 
    public string Text { get; set; } 
    public LabelStyle Style { get; set; } 
    public Coordinate Coords { get; set; } 
    public int TemplateID { get; set; } 
    public int PageNumber { get; set; } 

的代碼不能很好地形成,我知道。引發錯誤的函數存在於名稱空間Web2Print中,但ArtworkLabel類不存在於名稱空間中。我不認爲這應該是一個問題。

我試過重建,清除臨時文件。

+0

它在ID是一個你在字符串中使用的int這個事實上是否存在爭執? – DOK 2011-06-02 10:36:04

+0

@DOK不,我試着把'ToString()',但它拋出相同的錯誤。 – 2011-06-02 10:39:07

+0

如果你調試'TheLabel'有什麼樣的屬性?對我來說,感覺就像你引用了一個老的dll或者一些思考,那個沒有'ID'屬性 – Magnus 2011-06-02 10:43:56

回答

1

引發錯誤的函數存在命名空間Web2Print ,但 ArtworkLabel類沒有在 命名空間

一切都必須在一個命名空間中。找出ArtworkLabel所在的名稱空間,並將其稱爲ArtworkLabelNameSpace.ArtworkLabel

同時檢查您的ASPX文件中是否存在一個名爲ArtworkLabel的控件;錯誤消息聽起來像是它實際上找到了匹配對象,但該對象沒有定義ID屬性。

+0

沒有衝突的控件。一切都必須在名稱空間中嗎?它作爲公共類在.CS文件中。把它放在命名空間中會有點痛苦,但我會放棄它。 – 2011-06-02 10:38:30

+0

@Tom Gullen:我想如果你沒有明確地指定一個名字空間,那麼這個類就會在項目的默認名字空間中結束。如果可以在編譯狀態下使用,可以使用像[dotpeek](http://www.jetbrains.com/decompiler/index.html?topDP)這樣的工具來檢查程序集。 – Andomar 2011-06-02 10:54:26

相關問題