2011-02-24 22 views
22

私自身のhtmlヘルパーのためのintellisenseを得ることができません。なぜ私のHTMLヘルパーはインテリセンスを持っていませんか?

using System.Web.Mvc; 
using System.Text; 
using System.Web; 

    namespace laget.Web.Helpers 
    { 
     public static class CustomHtmlHelpers 
     { 
      //MY HELPERS 
     } 
    } 

と私のWeb.configファイルで:

<pages> 
     <namespaces> 
     <add namespace="laget.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages"/> 
     <add namespace="System.Web.Helpers" /> 
     </namespaces> 
    </pages> 

私は私の見解で<@using laget.Web.Helpers>を入れた場合、私はインテリセンスの問題は、固定得る私のCustomHtmlHelpers.csは、このようになります。

Web.configのコードでは十分ではありませんか?

答えて

24

時にはすぐ​​に機能しないようです。 .cshtmlファイルを閉じてから、再度開いてみてください。それでも問題が解決しない場合は、Visual Studioを再起動してみてください。また、実際にプロジェクトをコンパイルしたことを確認して、インテリセンスはコンパイルされていないヘルパーでは動作しません。

+2

あなたはそうです。 Visual Studioを再起動してすぐに動作します。 – MikeB

+0

多くのあなたに感謝!私は今日少なくともその1時間を過ごしました:) – MikeB

+0

はい、私はこれでもあまりにも時間を費やしました。ありがたいことに、究極の質問は "何かがあるときにいつも頭を吹き飛ばしてしまいましたか?壊れてしまいました。 –

0

ローカルページで必要です。私はこれが名前空間の解像度と関係していると確信しています。あなたは、ローカルのusingステートメントがないと、あなたが何を参照しているのか正確には分かりません。

6

正しいWeb.configファイルを編集していないことは間違いありません。

Viewsディレクトリの名前空間に名前空間を追加する必要があります。

<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" /> 
     <add namespace="laget.Web.Helpers" /> 
    </namespaces> 
    </pages> 
</system.web.webPages.razor> 
+1

私は両方のファイルを試しましたが、何もしませんでした... – MikeB

+1

プロジェクトをアンロードして再読み込みします。 –

0

今日もこの問題に遭遇しました。時には、Visual StudioでRazorビューのウィンドウを閉じてから再び開くだけで、Visual Studioを完全に再起動する必要はありません。

5

ほとんどの場合、Visual Studioを再起動する必要はありません。 .cshtmlファイルを閉じてもう一度開くだけです。

+0

これは、ありがとう! VSを再起動するよりもはるかに良い、我々はすべてが永遠にかかることを知っているから! :) – SomeRandomDeveloper

0

私はこのような問題を昨日解決しようとしました。ヘルパーや他のクラスがたくさん入っているe-pre-compiled dll(プロジェクト名:MyHtmlHelpers)がありました。

私はアセンブリをWebプロジェクトで参照していましたが、すべての "標準"ヘルパーがintellisenseで表示されましたが、ルートのweb.configとviews-folderの両方に名前空間を追加しましたが、プロジェクトヘルパーを動かすと動作しますが、Intellisenseでは動作しません。

新しいクラスを追加し、Webプロジェクト内に新しいhtmlヘルパーを作成し、web.configに名前空間を追加しました。それはうまくいった。

数時間後にMyHtmlHelpers-projectを私のwebprojectと同じソリューションに追加して、最後のカードを試しました。それがトリックでした。私はconfigsの何も変更していない、同じソリューションにプロジェクトを追加し、コンパイルされたDLLのinstedプロジェクトでポイントを参照を変更しました。

これは奇妙なことですか? VS-バグ?

0

間違ったweb.configへの参照を追加していました。それはあなたが既存のものを開いている場合だから今、私は(あなたの手順

1.Createを表示したり、既存のクラスライブラリプロジェクトを開きます...ビューディレクトリに

0

メイン設定が、web.configファイルではありませんMVC5ナゲットパッケージを必ず取り外してください)

2. MVCを追加してください(5。0)nugetパッケージ(ソリューションエクスプローラで 右クリックプロジェクト - > NuGetパッケージの管理 - MVCの検索>との「Microsoft ASP.NET MVC」をインストール)

3.Close任意およびすべてのオープン.cshtmlファイル

4.プロジェクトを右クリック - >プロパティ - >ビルド - >プロジェクトへの出力パスを変更する "bin /"

5.クラスライブラリプロジェクト のルートに次の最小Web.configを追加します(Web.config経由で) は、ClassLibraryアセンブリをホストしているWebApplicationで行う必要があります)

6.ソリューションをビルドしてビルドします。

7.Open CSHTMLファイルと、今、私はそれはまだ動作しない場合は、カスタムクラスのプロパティに移動し、「コンテンツ」からビルドアクションを変更する必要があることがわかっ:)

0

を試してみてくださいコンパイルします"。それは私のためにそれを解決しました。

関連する問題