【发布时间】:2010-11-20 13:28:38
【问题描述】:
将 Asp.net 网站转换为 Web 应用程序后,我在使用 MasterType 指令的页面上收到“Type MyNameSpace.MyMaster is not defined”错误。
例如 在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 应用程序项目没有这个问题。
有什么想法吗?
更新:
问题解决了!
在转换过程中,我向一个类添加了一个与我的根命名空间同名的命名空间。只需将其删除即可解决问题。
【问题讨论】:
-
您可能希望从头开始重新创建母版页/代码隐藏。然后复制标记和代码。这不能回答您的问题,但应该可以解决您的问题。
-
我通过搜索发现了我的命名空间问题:命名空间命名空间
标签: asp.net vb.net web-applications web master-pages