プラグインをNopCommerce3.2にコーディングしていますが、ビューで上記のエラーが発生しますが、「レイアウト」と「HTML」でもエラーが発生します。別のプラグインで動作するのと同じWeb.Configをコピーしました。また、動作中のプラグインで使用されているものと同じ参照を追加しました。プラグインをコンパイルすると機能しますが、インテリセンスがなく、VisualStudioがエラーを正しくマークすることを信頼できません。 VS2013 Professional Update1を使用しています。
Web.Configファイルは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<!-- We use this file to make razor intellisense work in the class library -->
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<compilation targetFramework="4.5" />
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add Assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
<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.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
</system.web>
<system.web.webPages.razor>
<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="Nop.Web.Framework.ViewEngines.Razor.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
</configuration>
編集:この質問が調査されていないことがわかった場合は申し訳ありませんが、解決策を見つけるために何時間も費やしたことを保証します(スタックオーバーフローで見つけた同様の質問を含み、web.configを問題として指摘していますそのファイルを質問に含めた理由)が見つかりません。
このエラーは、おそらくResharperが原因でした。私たちはGITを使用する3人の開発者のチームです。私たちの1人がResharperをインストールしましたが、これが他の2人のエラーの原因である可能性があります。 Resharperトライアルをインストールすると、突然再び機能しました。残念ながら、Resharperを再度アンインストールすると機能しません...
このセクションをsystem.webに追加してみてください。 (私が追加したバージョンが実際に使用しているものであることを確認してください)
<compilation targetFramework="4.5">
<assemblies>
<add Assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add Assembly="System.Web.Helpers, Version=2.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=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add Assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
.cshtmlビューファイルを閉じます。プロジェクトを再構築します。そして、それらを再び開きます。
プロジェクトMVCNuget Packageをアンインストールして再インストールすると、修正されました。プロジェクトの.netバージョンを変更したときに、私のものが失敗しました。
ビューで定義した名前空間がモデルの名前空間と一致していることを確認してください。
プロジェクトのプロパティをターゲット4.5.1に変更した場合
他の多くの場所のtargetFrameworkはまだ45と言います
TargetFrameworkは、ルートweb.configおよびすべての種類のpackages.configで3〜4回見つけることができます。
同じ問題が発生しました。プロジェクトをターゲット4.5に変更すると、問題は解決しました。
4.5.1をターゲットにしないのが最善
MVC5プロジェクトでも同じエラーが発生しました。私の場合、ViewsフォルダーのWeb.configが何らかの理由で公開されていませんでした。それを追加し直すと問題が解決しました。
私も同じ問題を抱えていました。解決策は、プロジェクトMVC NugetPackageをアンインストールして再インストールすることでした。
プロジェクトプロパティのすべての構成のプロジェクト出力パスを/bin
に変更します。これは奇妙なことですが、VS プロジェクト出力が/bin/Debug
または/bin/Release
にプッシュされると、インテリセンスが完全に無効になります。
私の場合、Visual Studioを閉じてこのフォルダーを削除することにより、 Visual Studioコンポーネントキャッシュをリセット する必要がありました。
C:\ Users\[username]\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
同じエラーが発生し、
コンソールアプリケーションでcshtmlインテリセンスを取得しようとしているだけなので、標準のベースWebビューページに戻ることができました。