2009-08-18 13 views
5

Po konwersji strony internetowej Asp.net na aplikację internetową, otrzymuję komunikat "Typ MyNameSpace.MyMaster nie jest zdefiniowany" na stronach korzystających z dyrektywy MasterType.Problem z MasterType po konwersji z ASP.Net WebSite na projekt aplikacji WWW

np W pliku aspx

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

W designer.vb Plik Poniższy kod jest generowany i ma błąd opisany powyżej:

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

Jeśli usunąć nazw błąd idzie ale ten kod jest odnawiany za każdym razem, gdy dokonuję zmiany na stronie aspx.

Jeśli użyję TypeName bez przestrzeni nazw (np. Typename = "MyMaster") zamiast VirtualPath w dyrektywie, kod zostanie wygenerowany bez odniesienia do przestrzeni nazw, a zatem bez błędu. Jednak w tym przypadku kończy się to niepowodzeniem. Włączenie przestrzeni nazw zachowuje się w taki sam sposób jak przy użyciu VirtualPath.

Jestem pewien, że ma to coś wspólnego z procesem konwersji, ponieważ nowe projekty aplikacji internetowych nie mają tego problemu.

Jakieś pomysły, co się tutaj dzieje?

UPDATE:

Problem rozwiązany!

W procesie konwersji dodałem do klasy Przestrzeń nazw o tej samej nazwie, co moja przestrzeń nazw użytkownika root. Po prostu usunięto to, aby rozwiązać problem.

+1

Może chcesz odtworzyć stronę wzorcową/code-tył od zera. Następnie skopiuj znaczniki i kody. To nie odpowiada na twoje pytanie, ale powinno rozwiązać twój problem. –

+0

Znalazłem problem z przestrzenią nazw, wykonując wyszukiwanie: namespace Namespace –

Odpowiedz

0

Problem rozwiązany!

W procesie konwersji dodałem do klasy Przestrzeń nazw o tej samej nazwie, co moja przestrzeń nazw użytkownika root. Po prostu usunięto to, aby rozwiązać problem.

1

Można nazwać klasę klasy głównej. Przestrzenie nazw są domyślnie tworzone w projektach aplikacji internetowych.

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

     } 
    } 
} 

Przeczytaj to, aby dowiedzieć się o innych pułapek:

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

+0

To niczego nie zmienia - ten sam problem występuje tylko w dodatkowej przestrzeni nazw. –

0

Zmień

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

do

<%@ MasterType TypeName="Mastername" %> 

to będzie działać idealnie

Powiązane problemy