2009-08-18 67 views
5

將Asp.net網站轉換爲Web應用程序後,在使用MasterType指令的頁面上收到'Type MyNameSpace.MyMaster is not defined'錯誤。將ASP.Net WebSite轉換爲Web Application項目後的MasterType問題

例如 在aspx文件

<%@ MasterType VirtualPath="~/MyMaster.master" %> 

在designer.vb文件中生成下面的代碼,並且具有錯誤如上所述:

Public Shadows ReadOnly Property Master() As MyNameSpace.MyMaster 
    Get 
     Return CType(MyBase.Master, MyNameSpace.MyMaster) 
    End Get 
End Property 

如果刪除了命名空間中的錯誤進但每次我對aspx頁面進行更改時都會重新生成此代碼。

如果我在指令中使用沒有名稱空間的TypeName(例如Typename =「MyMaster」)而不是VirtualPath,則生成的代碼不帶名稱空間引用,因此不會出現錯誤。但是,這在運行時會失敗。包含命名空間的行爲與使用VirtualPath的方式相同。

我很確定這與轉換過程有關,因爲新的Web應用程序項目沒有這個問題。

任何想法發生了什麼?

UPDATE:

問題解決了!

在轉換過程中,我添加了一個與我的根名字空間名稱相同的名字空間給一個類。只需將其刪除即可解決問題。

+1

您可能需要重新建立新的母版頁/代碼隱藏。然後複製標記和代碼。這不能回答你的問題,但應該解決你的問題。 – 2009-08-18 14:34:59

+0

我通過搜索:命名空間Namespace命名空間 – 2014-02-27 16:56:55

回答

0

問題解決了!

在轉換過程中,我添加了一個與我的根名字空間名稱相同的名字空間給一個類。只需將其刪除即可解決問題。

1

您可以命名空間您的母版頁類。命名空間默認在Web應用程序項目中創建。

namespace TestNS 
{ 
    public partial class TestMP : System.Web.UI.MasterPage 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
    } 
} 

閱讀,以瞭解任何其他陷阱:

http://msdn.microsoft.com/en-us/library/aa730880(VS.80).aspx

+0

我發現了我的命名空間問題,這不會改變任何事情 - 同樣的問題發生,現在只需要額外的命名空間。 – 2009-08-18 13:35:00

0

變化

<%@ MasterType VirtualPath="~/Mastername.master" %> 

<%@ MasterType TypeName="Mastername" %> 

這將很好地工作

相關問題