2013-08-02 71 views
1

我想我有一個相當簡單的問題。我只是用asp.net啓動一個web應用程序,並且我想使用母版頁。但是,在創建它並嘗試運行一些示例代碼後,我收到以下錯誤:ASP.NET母版頁繼承錯誤

編譯錯誤 說明:編譯爲請求提供服務所需的資源時發生錯誤。請查看以下具體的錯誤細節並適當修改您的源代碼。編程器錯誤消息:ASPNET:確保此代碼文件中定義的類匹配'inherits'屬性,並且它擴展了正確的基類(例如Page或UserControl)。

源錯誤:

Line 12: namespace MvcApplication3 
Line 13: { 
Line 14:  public partial class Site : System.Web.UI.MasterPage 
Line 15:  { 
Line 16:   protected void Page_Load(object sender, EventArgs e) 

我的Site.Master文件有什麼,我認爲是正確的繼承電話:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.Master.cs" Inherits="Site" %> 

什麼想法?

感謝

+1

那麼你的MasterPage沒有繼承'Site'類,它是相反的。 – Shimrod

+3

* MvcApplication3 *和* Page_Load *事件? O_o –

+0

@Shimrod事實並非如此。特定母版頁繼承了代碼隱藏的類,繼而繼承'System.Web.UI.MasterPage'。對於頁面和控件來說,它是一樣的 - 繼承鏈一般都在這三個層次上('ASP.site_master:MyApp.Site:System.Web.UI.MasterPage') –

回答

0

我相信你只是缺少命名空間在你的頭母版頁:

<%@ Master ... CodeFile="Site.Master.cs" Inherits="MvcApplication3.Site" %> 
+0

我試過這個,但同樣的問題。 –

+0

如果沒有'Inherits'行中的命名空間,我得到你的錯誤。只要我添加它,它編譯和運行完美。你的班級和主頁面在同一個目錄下,並且被命名爲'Site.Master.cs',對吧? –

0

你打算在「公共部分類網站」本身是一個母版頁?看來你正在頁面和母版頁之間添加一個不需要在那裏的級別。

我的頁面類使用以下語法來指定母版頁。

MasterPageFile="~/MasterPage.master" 
Inherits="namespace.pageClassName" 

您可以充當Page類基類的自定義頁面類,但我從來沒有見過任何人子類那樣的母版頁。

+0

除了命名空間混淆外,該問題完全顯示了開箱即用的母版頁。 '.master'文件有一個'Inherits'屬性 - 它繼承自一個繼承自'System.Web.UI.MasterPage'的類。 –