从ASP.Net WebSite转换为Web应用程序项目后的MasterType问题

时间:2009-08-18 11:03:48

标签: asp.net vb.net web-applications web master-pages

将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应用程序项目没有这个问题。

这里有什么想法?

更新

解决了问题!

在转换过程中,我在类中添加了一个与我的根命名空间同名的命名空间。只需删除它即可解决问题。

3 个答案:

答案 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" %>

这将完美地运作