c#ビュー埋め込みリソースとしてのビューは、常に構築後に古いビューを表示します

StackOverflow https://stackoverflow.com/questions/4659059

質問

他のアセンブリからのビューを使用するMVC2 Webサイトがあります。これを行うために、私 ビューを「組み込みリソース」としてマークしました.

私はビューを見ることができましたが、今、私がビューを変えたとき、私はもう変化を見ることができません。

私がビューを組み込みリソースとして呼ぶ方法は、これに似ています。

return View("~/Extension/Extensions.MyExtension.dll/" +
    "Extensions.MyExtension.Views.MyItem.Details.ascx", entity);

この場合、「拡張」部分は、ビューを埋め込みリソースとしてロードする必要があることを示しています。次の部分は、ビューを含むアセンブリを示しています。最後の部分は、ビューの場所(名前空間を含む)です。

ビューのコンテンツ全体を変更した後、以前のビューからのデータがまだ表示されていることです。または、埋め込まれたリソースとしてのビューをマークしていません。

拡張機能の最新のアセンブリを確保するために、myextension.dllは、アセンブリをWebサイトのビンフォルダーにコピーしました。アセンブリでアセンブリをチェックして、正しいビューがアセンブリにあるかどうかを確認しました。これは正しいビューですが、私はまだ古いビューを見ます。

ビューの名前を変更すると、問題は一時的なものを解決しますが、私にとって良い解決策ではありません。ビューの名前を変更すると、古いビューが表示されました。

役に立ちましたか?

解決

データがキャッシュされていて、DLLファイルが変更されていると見なされていない場合、ほとんど私には見えます。 web.configにプロパティ「OptimizeCompillations」はありますか? falseに設定されているかどうかを確認してください。それ以外の場合は、(trueの場合)変更されたDLLファイルのみが再コンパイルされます。

詳細については、詳細をご覧ください これ MSDNページ。

例えば:

<compilation debug="true" defaultLanguage="c#" targetFramework="4.0"
    optimizeCompilations="false">

他のヒント

コンパイル時に結果のアセンブリにビューが埋め込まれているため、プロジェクトを再コンパイルする必要がある場合があります。単にブラウザを更新しても、変更を再コンパイルせずにASCXファイルを変更するだけでは有効になります。

完全なプロジェクトを再構築する必要があります。それが問題を解決しない場合は、プロジェクトを清掃してから構築してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top