web-dev-qa-db-ja.com

Razorコンパイラの警告/エラー-ASP.NETMVC 4

ここで報告されているように見える問題があります:

クラスライブラリで動作するには、レイザービューエンジンのオートコンプリートが必要ですか?

私の問題は次の警告です:

G:\ Accountable\Accountable\Views\LedgerUser\EditorTemplates\LedgerServiceViewModel.cshtml:ASP.NETランタイムエラー:拡張子「.cshtml」に登録されているビルドプロバイダーがありません。 machine.configまたはweb.configのセクションで登録できます。値「Web」または「All」を含むBuildProviderAppliesToAttribute属性があることを確認してください。

この問題は私のすべての見解で明らかです。以下のサンプル画像。

enter image description here

enter image description here

enter image description here

今、私が見つけたオンラインのすべての投稿と参照は、さまざまなWeb.config(前の投稿で述べたように)オプションの追加を参照していますが、これらの構成がプロジェクトでデフォルトになっているため、これは機能しないようです。これが私のWeb構成です:

メインWeb.config

ルートWeb構成の表示

この問題は、ビューで次のコンパイラエラーが発生しているときに発生する可能性があると思います。

「Html」という名前は現在のコンテキストには存在しません

enter image description here

私は何が間違っているのですか?

13
garfbradaz

Arrrgghhh私はROOTWeb.configから以下を見逃していました:

 <compilation debug="true" targetFramework="4.0">
  <!-- New -->
  <assemblies>
    <add Assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add Assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add Assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add Assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add Assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

これにより、エラーが修正され、ビュー内でIntellisenseを使用できるようになりました。

22
garfbradaz

ルートWeb.configに次の行を戻す問題が修正されました。

<system.web>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <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="System.Web.WebPages" />
      </namespaces>
    </pages>
</system.web>
3
abatishchev

プロジェクトをアンロードしてリロードするだけで動作しました。上記のすべての名前空間はルートweb.configにすでに存在していましたが、まだこの問題が発生していました。

2
Mukus

一時的なasp.netフレームワークファイルを削除することは私のために働きます。

IISを停止し、このフォルダーの下にあるすべてのものを削除します。

C:\ Windows\Microsoft.NET\Framework64\[フレームワークバージョン]\TemporaryASP.NET Files

次に、IISを再起動します。バム!

2
Fernando Neira

IISを再起動し、一時ASP.NETファイルを削除し、Web構成ファイルのコンパイルタグを変更してみました。それらのどれも私のために働きません。

System.Web.MVCを削除してプロジェクトに追加することで、この問題を修正しました。

私の場合、Razor構文は赤で強調表示されています。

0
Kapila Perera