2009-08-18 4 views
5

Asp.net WebサイトをWebアプリケーションに変換した後、MasterTypeディレクティブを使用するページで 'MyNameSpace.MyMasterが定義されていません'というエラーが表示されます。ASP.Net WebSiteからWebアプリケーションプロジェクトに変換した後のMasterTypeの問題

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

私はエラーが行く名前空間を削除する場合:次のコードが生成され、上記のエラーを持っていdesigner.vbファイルで

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

のaspxファイルで

例えば このコードはaspxページを変更するたびに再生成されます。

VirtualPathの代わりに名前空間(例:Typename = "MyMaster")をディレクティブに使用した場合、コードは名前空間参照なしで生成されるため、エラーは発生しません。しかし、これは実行時に代わりに失敗します。名前空間を含めることは、VirtualPathを使用するのと同じ方法で動作します。

新しいWebアプリケーションプロジェクトにはこの問題がないため、これは変換プロセスと関係があります。

ここで何が起こっているのですか?

UPDATE:

問題が解決!

変換処理では、私のルート名前空間と同じ名前の名前空間をクラスに追加しました。それを削除して問題を解決してください。

+1

は、あなたがゼロからコードビハインドマスターページ/を再作成したい場合があります動作します。マークアップとコードをコピーします。これはあなたの質問に答えないが、あなたの問題を解決するはずです。 –

+0

名前空間の問題が見つかりました:namespace名前空間 –

答えて

0

問題が解決!

変換処理では、私のルート名前空間と同じ名前の名前空間をクラスに追加しました。それを削除して問題を解決してください。

1

masterpageクラスの名前を変更できます。名前空間は、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

+0

これは何も変更されません。同じ問題が発生します。 –

0

変更

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

<%@ MasterType TypeName="Mastername" %> 

に、これは完全に

関連する問題