2009-04-10 18 views
0

プロジェクトが名前変更され、ReSharperを使用してソリューション全体の名前空間の名前が変更されました。すべてがコンパイルされますが、私のASP.NET MVCビューには継承されたクラスは見られなくなりました。私はweb.configとすべての名前空間のインポートを変更しました。クラスが存在することは確かです。完全修飾クラス名(Name.Space.ClassName)を参照すると動作します。大規模なリファクタリング後にASP.NET MVCビューにクラスが表示されない

なぜこのようなことが起こり、どうすれば解決できますか?

EDIT:その他の詳細:

リファクタリング前に、私は、カスタムビューページ、マスターページ、およびユーザーコントロールのクラスだった:

SalesWeb.Mvc.Views.SalesWebViewPage
SalesWeb.Mvc.Viewsを.SalesWebMasterPage
SalesWeb.Mvc.Views.SalesWebUserControlリファクタリング後

Wasabi.SalesPortal.Mvc.Views.SalesPortalViewPage
Wasabi.SalesPortal.Mvc.Views.SalesPortalMasterPage
Wasabi.SalesPortal.Mvc.Views.SalesPortalUserControlリファクタリング前

web.configファイルで

、:

<configuration> 
    <system.web> 
     ... 
     <pages ...> 
      ... 
      <namespaces> 
       ... 
       <add namespace="SalesWeb.Mvc.Views" /> 
      </namespaces> 
     </pages> 
    </system.web> 
</configuration> 

後:

<configuration> 
    <system.web> 
     ... 
     <pages ...> 
      ... 
      <namespaces> 
       ... 
       <add namespace="Wasabi.SalesPortal.Mvc.Views" /> 
      </namespaces> 
     </pages> 
    </system.web> 
</configuration> 

また、私のビュー、マスターページ、およびユーザーコントロールのそれぞれで継承属性を変更しました。しかし、MVCアプリケーションを訪問しようとするとSalesPortalMasterPageが見つかりませんでしたが、私はそれが存在することを確信しています。Wasabi.SalesPortal.Mvc.Views .SalesPortalMasterPage

+0

@David Brown:詳細を述べる必要があります。前後の状態を知らなくても、言うことは不可能です。 – casperOne

答えて

1

binディレクトリをクリーニングして再構築してください。時には、古いdllがbinフォルダに残っていて、あなたの参照/名前空間を混乱させることがあります。

0

名前空間がビューを保持する名前空間と異なる場合、同様の問題が発生します。私の問題は、Webサイトの名前空間にないクラスを参照する厳密に型指定されたビューを使用すると、ビュー自体で定義されていればそれを認識しないということです。私の解決策は、各ビューのコードビハインドファイルを作成し、そこにクラスを定義して(同じ名前空間にあるように)、ビューをコードビハインドクラスから継承させることです。これを行う古い方法だと分かっています(お勧めしません)。しかし、これは私が見つけた唯一のものです。コードビハインドが作成されなくなる前にバージョンで作成したビューは、コードビハインドなしで作成されたビューはコンパイルに失敗したままで動作していたため、デフォルトで作成されたビューは引き続き機能していました。あなたの問題を解決するかどうか確認するためにこれを試してみてください。

この問題はCodeplex、btwで報告しました。

EDIT:あなたのコメントに基づいて、私と同じ問題は発生していない可能性があります。プロジェクトでアセンブリ名(および既定の名前空間)が更新されているかどうか確認することができます。おそらく問題は、アセンブリ名がネームスペースと一致しないことです。

+0

以前はうまくいきました。変更された部分は、名前空間の最初のレベル(SalesWeb - > Wasabi.SalesPortal)だけです。 –

+0

別の可能性で私の答えを更新しました。 – tvanfosson

関連する問題