ASP.Net MVC Web サイトを構築しています。1 つのプロジェクトにすべてを含めるのではなく、Web、モデル、およびコントローラーを、相互に参照する同じソリューション内の異なるプロジェクトに分離することにしました。
参照は次のようになります。
Web ---[参考文献]---> コントローラ ---[参考文献]---> モデル
ここで、HtmlHelper クラスに 2 つのカスタム メソッドを追加したいと考えました。これらは「IncludeScript」と「IncludeStyle」と呼ばれます。それぞれ単一の文字列パラメータを取り、それぞれスクリプトまたはリンク タグを生成します。
Web のドキュメントに従ってエクステンダー クラスを作成し、2 つのメソッドを記述してアプリケーションをコンパイルしました。
ここで、Public.Master ページ (メインのマスター ページであり、これらのメソッドを使用する予定の場所の 1 つ) に移動すると、次のようなコードを入力できます。
<%= Html.IncludeScript("\js\jquery.js") %>
IntelliSense は、IncludeScript メソッドを取得して、問題なく構文を表示します。だから私はすべてがうまくいくはずだと思っています。
しかし、そうではありません。
すべてがコンパイルされますが、アプリケーションを実行するとすぐに、Default.aspx.cs の 14 行目から次の実行時エラーが発生します。
c:\\Projects\\PhoneReel\\PhoneReel.Web\\Views\\Shared\\Public.Master(11): error CS0117: 'System.Web.Mvc.HtmlHelper' does not contain a definition for 'IncludeScript'
エラーが発生するコード行は次のとおりです。
httpHandler.ProcessRequest(HttpContext.Current);
ここで何がうまくいかないのでしょうか?