私はモジュラー アプリケーションを作成しました。各モジュールは個別のプロジェクトであり、MVC 領域と同様の外観です。
カスタムを実装しましたWebViewPage
が、ポインターを削除しweb.config
てデフォルトに戻した後でも、インテリセンスはまだ機能していません。
私のカミソリビューの最初の行で:
@model IEnumerable<Module2.Models.TestModel>
警告が表示されます:
xxx\Module2\Views\Shared\TestModelTable.cshtml: ASP.NET ランタイム エラー: タイプ WebActivator.ActivationManager で実行されるアプリケーション前の開始初期化メソッドは、次のエラー メッセージで例外をスローしました: 呼び出しのターゲットによって例外がスローされました.. xxx\Module2\Views\Shared\TestModelTable.cshtml
そしてエラー:
「モデル」という名前は現在のコンテキストに存在しませんxxx\Module2\Views\Shared\TestModelTable.cshtml
次に、モデルを参照しようとするたびにエラーが表示されます。
メソッド 'System.Web.Mvc.Html.DisplayExtensions.DisplayFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>)' の型引数は、使用法から推測できません。型引数を明示的に指定してみてください。xxx\Module2\Views\Shared\TestModelTable.cshtml 26 14 モジュール 2
さらに、ビューに追加ViewBag.Title
すると、次のエラーが発生します。
動的式のコンパイルに必要な 1 つ以上の型が見つかりません。参照がありませんか?xxx\Module2\Views\Shared\TestModelTable.cshtml
Web構成に問題があると思いますが、それらはmvc領域にある標準のWeb構成です(カスタムを削除しましたWebPageView
)
これは、各モジュールで作成しようとするすべてのビューで発生しますが、メイン アプリケーションは正常に動作します。その結果、webconfig をメイン アプリケーションからモジュールにコピーしようとしましたが、まだ多くのエラーが発生しました。
2012 年 6 月 12 日更新
モジュールを処理するように RazorBuildProvider の実装を修正した後、アプリは厳密に型指定されたビューを正常にレンダリングできるようになりました。ただし、インテリセンスはこれらのエラーをレンダリングします。行の最初のエラーが@module...
原因で、エディターが厳密に型指定されたモデルに必要な情報を読み込めないようになっていると思われます。
2012 年 6 月 12 日更新
排除のプロセスを経て、ninject の PreApplicationStartMethod が原因であることがわかりました。メソッドが RegisterServices を呼び出すと、私のモジュールローダーが呼び出され、そこのどこかにエラーがスローされます。[assembly: WebActivator.PreApplicationStartMethod(typeof(Frontline.App_Start.NinjectWebCommon), "Start")]
より良い解決策として、このエラーを適切にデバッグする方法を理解する必要があります。何も見つからなかったので、SO Debugging Visual Studio editor exceptionsに別の (より一般的な) 質問を投稿しました。
また、私のハッキーな修正を回答として投稿します