11

I持ってここに報告されているように思われる問題:カミソリコンパイラの警告/エラー - ASP.NET MVC 4

Need razor view engine auto-complete to work in a class library?

私の問題であり、次の警告:

G:\Accountable\Accountable\Views\LedgerUser\EditorTemplates\LedgerServiceViewModel.cshtml: ASP.NET runtime error: There is no build provider registered for the extension '.cshtml'. You can register one in the section in machine.config or web.config. Make sure is has a BuildProviderAppliesToAttribute attribute which includes the value 'Web' or 'All'.

この問題はすべての私の見解で明らかです。以下のサンプル画像。今、私が発見したことをすべてオンライン投稿や参照が様々なWeb.configファイル(以前の記事で述べたように)オプションが、このdoesnのを追加することに参照されている

enter image description here

enter image description here

enter image description here

私はこれらの設定がプロジェクトにデフォルト設定されているので、うまくいかないようです。ここに私のウェブConfigsにある:

Main Web.config

View root Web Config

イムもビューの次のコンパイラエラーを取得中に、私は多分、この問題を考える:

The name 'Html' does not exist in the current context

enter image description here

何私は間違っている?

+0

この1つのほとんどの重複:http:// stackoverflow。com/questions/4158573/need-razor-view-engine-auto-complete-to-class-library- –

+0

Hey David。コメントありがとう。はい、私は上記のポストでそれを参照しました。私はプロジェクトで作成されたデフォルトのものと何らの違いも見られません。 – garfbradaz

答えて

21

Arrrgghhh私はROOT Web.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> 

。それは単にプロジェクトをアンロードして再ロードすることによって、私を働いてしまった

<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> 
+1

私はこれがなぜそれを修正したのか本当に知りませんが、それはしました。それはうまくいっていたし、私はgitのファイル上の非常に小さな塊を逆にして、私のプロジェクト全体が爆発した。これはそれを修正するようだ。 –

+1

これはmvc5で動作しました。バージョンを '3.0.0.0'に変更し、web.config内の公開鍵に変更します(ファイルの最後にあります)。 MVC 5の – VSG24

+0

はすべてのバージョンとキーを更新しましたが、エラーはまだここにあります。 –

3

は、固定されたルートのWeb.configに次の行をバック置きます。上記のすべてのネームスペースはすでにルートweb.configに存在していましたが、私はまだこの問題を抱えていました。

2

一時的なasp.netフレームワークファイルを削除することは私の仕事です。

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

C:\Windows\Microsoft.NET\Framework64\[framework version]\Temporary ASP.NET Files

は、その後、IISを再起動します。バム!

+1

私のプロジェクトは何年も前から仕事をしていました。これは私のために働いた、ありがとう! – Jesse

0

IISを再起動し、一時的なASP.NETファイルを削除し、Web設定ファイルのコンパイルタグを変更してみました。それらのどれも私のために働かない。

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

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