何度試しても、HTML Helper 拡張メソッドが機能しません。誰かが自分で試してみたい場合は、私が作成したテスト手順を次に示します。
Visual Studio 2012 を使用して、「インターネット アプリケーション」プロジェクト テンプレートを使用して、新しい「Visual Basic ASP.NET MVC 4 インターネット Web アプリケーション」を作成します。
フォルダを作成します
"~/Views/Helpers"
ファイルを作成し
"DisplayForPropertyHelper.vb"
、次のコードを追加します。Namespace TestProject.Extensions Public Module HtmlHelperExtensions <Extension()> Public Function DisplayForProperty(helper As HtmlHelper) As MvcHtmlString Return MvcHtmlString.Create("TEST") End Function End Module End Namespace
以下を開いて
"~/Views/Web.config"
変更します (拡張名前空間を追加します)。<system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Optimization"/> <add namespace="System.Web.Routing" /> <add namespace="TestProject.Extensions"/> </namespaces> </pages> </system.web.webPages.razor>
プロジェクトをコンパイルする
ANY razor ビュー ファイルを選択し、「-」と入力
@Html.Display
すると、拡張メソッドが表示されないことがわかります。Razor ビュー ファイルに追加し、ファイル
@Imports TestProject.Extensions
を保存して閉じます。ファイルを再度開いて - と入力
@Html.Display
すると、拡張メソッドが表示されないことがわかります。VS2012 を閉じて、プロジェクトを再度開くこともできます。違いはありません。
私は何週間もこれと戦ってきました。ここや他の場所で私が見つけたすべての答えは何の助けにもなりません。誰かが答えを持っているはずです。