2009-09-16 50 views
2

有沒有人有將主頁從一個解決方案/應用程序移動到另一個的建議?主頁上的編譯器錯誤

我已經從現有的解決方案,以一個新的複製母版頁。

原始解決方案構建並運行良好。

在新的解決方案的頁面原因生成錯誤

這些主要是「變量」未聲明。

我註釋掉了所有頁面的服務器代碼的,除了2個非常簡單的語句。

聲明1引用控件是在原頁面標記

pgLoginView.EnableViewState = True 

聲明2個引用新添加用於測試目的控制

lblFrogs.Text = "sdfgsd" 

就好像編譯器不知道的應該從標記生成的類成員。我已檢查標記文件的「繼承」屬性設置正確。 當我在代碼編輯器中調用intellisense時,列出了兩個對象(lblFrogs和pgLoginView),並在按''後正確列出它們的屬性和方法。

任何有關這個問題的幫助或想法將不勝感激。我在智慧的結尾 - 這是一段短暫的旅程。

+0

包含您的網頁Web站點或Web應用程序項目中?每個編譯過程都非常不同。 – 2009-09-16 16:04:43

+0

它在一個Web應用程序項目 – RobD 2009-09-16 16:13:24

回答

0

我終於用Profile對象找到了我的悲哀之源。

首先,配置文件功能僅在網站類型項目中可用。然而,由於該項目已被轉換爲網站類型以解決引用頁面元素的第一個問題,那麼爲什麼配置文件對象不可用?

答案是轉換不會修改頁面標記。後面代碼的位置需要用「CodeFile」來指定,並且Inherits屬性必須關閉前導名稱空間信息。例如:

1

你掌握頁。您應該檢查生成的設計代碼 - 儘管在.aspx /的.master頁面用於在運行時你的頁面上創建的所有控件的情況下,在編譯時所有關於什麼樣的控制是信息目前的標記被包含在部分班級在.designer.master文件:

public partial class Site1 
{ 
    /// <summary> 
    /// ContentPlaceHolder1 control. 
    /// </summary> 
    /// <remarks> Auto-generated field.</remarks> 
    protected global::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder1; 

    // Etc... 
} 

如果該頁面不包含包含正確生成代碼,然後我真的不知道該怎麼建議比其他遊戲或者如果你真的堅持自己宣佈控制 - 我以前有過這個問題,但我不知道如何設計器代碼生成。

如果那不是porblem那麼你肯定是Visual Studio中處理不當決定重新命名的任何控件?

+0

啊!我不知道用於編譯的designer.master。我已經打開它,實際上物體不在那裏! – RobD 2009-09-16 16:10:43

0

christian-hayter似乎是在正確的軌道上。我將該項目轉換爲網站項目,問題消失了。

看來根本原因可能仍然是一個謎。

0

東西肯定已經發狂了與編制此頁面。

我無法引用配置文件屬性。這article from Dino Esposito 說,檔案對象添加到頁面像這樣的編譯過程的一部分:

保護的ProfileCommon檔案{ 獲得{ 回報((的ProfileCommon)(上下文。簡介)); }}

當我爲做文件查找的ProfileCommon在一個工作項目,我從在asp.net臨時文件許多成果。在破損的項目中,ProfileCommon不會在任何文件中發生。

+0

澄清上述內容 - 由於ProfileCommon未知,因此我無法手動將該屬性添加到頁面。 – RobD 2009-09-17 08:16:23

+0

我曾嘗試過這種建議的各種排列: http://www.brendancleary.com/?p=41 無濟於事。配置文件屬性和ProfileCommon無法從母版頁或添加的空白測試頁訪問 – RobD 2009-09-17 08:40:33