在将 Asp.net 网站转换为 Web 应用程序后,我在使用 MasterType 指令的页面上收到“类型 MyNameSpace.MyMaster 未定义”的错误。
例如,在 aspx 文件中:
在 designer.vb 文件中,生成了以下代码,并出现了上述错误:
如果我删除命名空间,错误就会消失,但每次更改aspx页面时都会重新生成此代码。 如果在指令中使用TypeName而不使用命名空间(例如Typename =“MyMaster”),则代码将生成而不带有命名空间引用,因此没有错误。 但是,在运行时会失败。 包含命名空间的行为与使用VirtualPath相同。 我相信这与转换过程有关,因为新的Web应用程序项目没有此问题。 你有什么想法吗? 更新: 问题已解决! 在转换过程中,我添加了一个与根命名空间同名的命名空间到一个类中。 只需删除它即可解决问题。
例如,在 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相同。 我相信这与转换过程有关,因为新的Web应用程序项目没有此问题。 你有什么想法吗? 更新: 问题已解决! 在转换过程中,我添加了一个与根命名空间同名的命名空间到一个类中。 只需删除它即可解决问题。