共用方式為


設計檢視轉譯疑難排解

更新:2007 年 11 月

您嘗試在 Web Form 設計工具中開啟設計工具無法正確呈現的檔案時,可能會發生數個常見問題。設計檢視呈現的錯誤經常發生於您正在處理的檔案原先在 Visual Studio 外係建立為程式碼後置 (Code-Behind) Web Form 網頁的情況。然而,這些錯誤會發生在各種情況下。一般而言,問題牽涉到 Web Form 網頁中 @ Page 指示詞或 Web Form 使用者控制項中 @ Control 指示詞的屬性 (Attribute)。

注意事項:

Web Form 設計工具是檔案的註冊編輯器,其中檔案的副檔名符合正在處理的檔案副檔名。如果您不想要使用 Web Form 設計工具來處理這個檔案,請變更檔案的副檔名。或者,您可以在 [方案總管] 中的檔案上按一下滑鼠右鍵,選取 [開啟方式],並選擇其他編輯器。

Src 屬性的問題

如果在 @ Page@ Control 指示詞中有 Src 屬性,則可能會發生錯誤。Web Form 設計工具不支援這個屬性。若要更正這個錯誤:

  • 移除 Src 屬性 (Attribute)。在其位置加入:

    • CodeBehind 屬性,會參考專案中程式碼後置檔案的名稱。

    • Inherits 屬性,會參考由程式碼後置檔案所代表的類別名稱 (而這個類別應繼承自 System.Web.UI.Page 類別)。

    注意事項:

    如果沒有程式碼後置的檔案和類別,您可以讓 Web Form 設計工具產生檔案和類別。在移除 Src 屬性之後,將 Inherits 屬性設定為空字串 (""),而將 CodeBehind 屬性設定為要產生之程式碼後置檔案的名稱 (formname.aspx.vb 或 formname.aspx.cs)。儲存並關閉檔案。在 [方案總管] 中,在 .aspx 檔案上按一下滑鼠右鍵並選擇 [檢視程式碼]。當您儲存程式碼後置檔案時,設計工具會產生適當的類別檔案。再次開啟檔案。執行在程式碼後置檔案中產生程式碼的任何動作 (例如,加入控制項或在控制項上按兩下來建立事件處理常式),接著儲存檔案。設計工具會適當設定 Web Form 網頁的 Inherits 屬性。

或者,您可以移除 Src、CodeBehind 和 Inherits 屬性,並且將檔案視為單一檔案的 Web Form 網頁。如需詳細資訊,請參閱在 Visual Studio .NET 中使用單一檔案的 Web Form

CodeBehind 屬性的問題

@ Page@ Control 指示詞中的 CodeBehind 屬性會參考包含網頁類別的檔案名稱。例如,當您在 Visual Studio 中建立名為 WebForm1 的 Web Form 網頁時,CodeBehind 屬性將會指向 WebForm1.aspx.vb 或 WebForm1.aspx.cs。

CodeBehind 屬性只能在設計階段使用,它告知 Web Form 設計工具尋找網頁類別的位置,使設計工具可以建立供您使用的執行個體 (Instance)。

與 CodeBehind 屬性關聯的問題可能包括:

  • 參考的檔案無法使用。檔案不存在或有不同名稱。

  • 所參考檔案中的類別是繼承自專案中未參考的基底類別 (Base Class)。一般而言,Web Form 網頁的類別是繼承自 System.Web.UI.Page 類別,但是如果您使用其他平台 (例如,行動裝置) 的使用者控制項或 Web Form 網頁,則基底類別 (Base Class) 可能不同。

所參考檔案中的類別是繼承自專案中尚未編譯的基底類別。

Inherits 屬性的問題

@ Page@ Control 指示詞中的 Inherits 屬性會參考執行階段網頁繼承來源的類別 (不是檔案) 名稱。如需 Web Form 網頁繼承 (Inheritance) 模型的詳細資訊,請參閱 Web Form 程式碼模型

Inherits 屬性的問題只會在也沒有 CodeBehind 屬性的情況下發生。例如,單一檔案的 Web Form 網頁中可能會發生這個問題。如果沒有 CodeBehind 屬性,則在設計階段,設計工具只會使用 Inherits 屬性中參考的類別來建立網頁的執行個體。

注意事項:

如果有 CodeBehind 屬性,則設計工具會忽略 Inherits 屬性,即使 Inherits 屬性指向無法使用的類別。在此情況下,您可以在設計工具中使用網頁但不能執行它。

與 Inherits 屬性關聯的最常見問題為,該屬性指向專案或所參考組件中無法使用的類別。

請參閱

概念

設計檢視