2009-08-18 11 views
5

Después de convertir una página web Asp.net a aplicaciones web, recibo 'Tipo MyNameSpace.MyMaster no está definido' error en las páginas que utilizan la directiva MasterType.problema MasterType después de la conversión de ASP.Net sitio web para proyecto de aplicación Web

por ejemplo En el archivo aspx

<%@ MasterType VirtualPath="~/MyMaster.master" %> 

En el designer.vb archivo se genera el siguiente código y tiene el error descrito anteriormente:

Public Shadows ReadOnly Property Master() As MyNameSpace.MyMaster 
    Get 
     Return CType(MyBase.Master, MyNameSpace.MyMaster) 
    End Get 
End Property 

Si quito el espacio de nombres va el error de distancia, pero este código se regenera cada vez que hago un cambio en la página aspx.

Si uso TypeName sin el espacio de nombres (por ejemplo, Typename = "MyMaster") en lugar de VirtualPath en la directiva, el código se genera sin la referencia del espacio de nombres y, por lo tanto, no hay error. Sin embargo, esto falla en tiempo de ejecución en su lugar. Incluir el espacio de nombres se comporta de la misma manera que con VirtualPath.

Estoy bastante seguro de que esto tiene algo que ver con el proceso de conversión como nuevos proyectos de aplicaciones web no tienen este problema.

¿Alguna idea de lo que está pasando aquí?

ACTUALIZACIÓN:

Problema resuelto!

En el proceso de conversión I se había añadido un espacio de nombres con el mismo nombre que mi espacio de nombres raíz de una clase. Simplemente eliminé eso para solucionar el problema.

+1

Es posible que desee volver a crear la página maestra/código subyacente a partir de cero. Luego, copie las marcas y los códigos. Esto no responde su pregunta pero debería resolver su problema. –

+0

Encontré mi problema de espacio de nombres haciendo una búsqueda para: namespace Namespace –

Respuesta

0

Problema resuelto!

En el proceso de conversión I se había añadido un espacio de nombres con el mismo nombre que mi espacio de nombres raíz de una clase. Simplemente eliminé eso para solucionar el problema.

1

Puedes ponerle nombre a tu clase de página maestra. Los espacios de nombres se crean de forma predeterminada en proyectos de aplicaciones web.

namespace TestNS 
{ 
    public partial class TestMP : System.Web.UI.MasterPage 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
    } 
} 

Lea esto para averiguar sobre cualquier otro trampas:

http://msdn.microsoft.com/en-us/library/aa730880(VS.80).aspx

+0

Eso no cambia nada - el mismo problema ocurre, solo que con el espacio de nombres extra ahora. –

0

Cambio

<%@ MasterType VirtualPath="~/Mastername.master" %> 

a

<%@ MasterType TypeName="Mastername" %> 

esto funcionará perfectamente

Cuestiones relacionadas