[解決済み] Razor HtmlHelper Extensions (またはビューの他の名前空間) が見つかりません。
2022-04-24 18:49:02
質問
PRかベータ版で起きていたことなのか分かりませんが、拡張メソッドを
HtmlHelper
Razor を使用したページでは認識されません。
namespace SomeNamespace.Extensions {
public static class HtmlExtensions {
public static string Foo(this HtmlHelper html) {
return "Foo";
}
}
}
に追加しました。
<Namespaces>
セクションで
Web.config
:
<pages>
<namespaces>
<add namespace="System.Web.Mvc" />
<!-- snip -->
<add namespace="SomeNamespace.Extensions"/>
</namespaces>
</pages>
しかし、ページを表示しようとすると、コンパイルエラーが投げられます。
@Html.Foo()
でページを作り直すと WebForms は正常に動作しています。どうしたんでしょうか?
回避策
もし私が
@using SomeNamespace.Extensions
を Razor のビューに入れるとうまくいくのですが、それよりもむしろ
Web.config
解決方法は?
ベータ版以降、Razor はネームスペースのインポートをグローバルに定義するために、異なる設定セクションを使用しています。あなたの
Views\Web.config
ファイルに以下を追加してください。
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.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.Routing" />
<!-- Your namespace here -->
</namespaces>
</pages>
</system.web.webPages.razor>
を使用します。 MVC 3 アップグレードツール を使用すると、自動的に正しい設定値を持つようになります。
備考 エディタに変更を反映させるために、ファイルを一度閉じてから再度開く必要がある場合があることをお知らせします。
関連
-
[解決済み] Html.DisplayForの構文は何のためにあるのですか?
-
[解決済み] 年、月、日のパラメーターは、表現できない DateTime Exception を記述します。
-
[解決済み] razor viewエンジンでの@文字のエスケープ
-
[解決済み】ViewBag、ViewData、TempDataについて
-
[解決済み】MVC 3 web.configのwebpages:Enabledの機能は何ですか?
-
[解決済み] StringLength vs MaxLength属性 ASP.NET MVC with Entity Framework EF Code First
-
[解決済み] Razor HtmlHelper Extensions (またはビューの他の名前空間) が見つかりません。
-
[解決済み] _viewstart.cshtml と部分的な Razor のビューを使用する正しい方法?
-
[解決済み] Razor のページに @using 宣言の代わりに余分な名前空間を追加する方法は?
-
[解決済み] asp.net MVC3 のカスタムエラーページ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ファイルまたはアセンブリ 'System.Web.WebPages.Razor, Version=2.0.0.0' を読み込めませんでした。
-
[解決済み] 年、月、日のパラメーターは、表現できない DateTime Exception を記述します。
-
[解決済み] razor viewエンジンでの@文字のエスケープ
-
[解決済み】ViewBag、ViewData、TempDataについて
-
[解決済み】ASP.NET MVC3 - textareaで@Html.EditorForを使用する。
-
[解決済み】MVC 3 web.configのwebpages:Enabledの機能は何ですか?
-
[解決済み] StringLength vs MaxLength属性 ASP.NET MVC with Entity Framework EF Code First
-
[解決済み] Razor のページに @using 宣言の代わりに余分な名前空間を追加する方法は?
-
[解決済み] asp.net MVC3 のカスタムエラーページ
-
[解決済み] MVC3 Razor。コードブロック内のhtmlを表示する