将Asp.net网站转换为Web应用程序后,我在使用MasterType指令的页面上收到“Type MySpaceSpace.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应用程序项目没有这个问题。
这里有什么想法?
更新
解决了问题!
在转换过程中,我在类中添加了一个与我的根命名空间同名的命名空间。只需删除它即可解决问题。
答案 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
答案 1 :(得分:0)
解决了问题!
在转换过程中,我在类中添加了一个与我的根命名空间同名的命名空间。只需删除它即可解决问题。
答案 2 :(得分:0)
更改
<%@ MasterType VirtualPath="~/Mastername.master" %>
到
<%@ MasterType TypeName="Mastername" %>
这将完美地运作