2009-08-18 21 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" %> 

这将很好地工作

相关问题