我正在编写一个插件到NopCommerce 3.2,在视图中我得到了上面提到的错误,但也有'布局'和'Html'。我复制了在另一个插件中工作的相同Web.Config。我还添加了与工作插件中使用的相同的引用。编译插件时,但我没有任何intellisense,并且不能相信VisualStudio正确地标记错误。我正在使用VS2013 Professional Update 1。
这是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>
编辑:很抱歉,如果你发现这个问题没有研究过,但我向你保证,我花了好几个小时试图找到解决方案(包括我在stackoverflow中找到的那些类似的问题,并指出web.config为问题这就是我在我的问题中包含该文件的原因)但找不到它。
答案 0 :(得分:5)
此错误可能是由Resharper引起的。我们是使用GIT的三个开发人员组成的团队。我们其中一人安装了Resharper,这可能导致了我们其他两个人的错误。当我们安装Resharper试用版时,它突然又恢复了工作。不幸的是,再次卸载Resharper时它无法正常工作......
答案 1 :(得分:3)
尝试在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视图文件。重建项目。然后再打开它们。
答案 2 :(得分:3)
取消安装项目MVC Nuget Package并重新安装它为我修复了它。当我改变项目的.net版本时,我的版本很糟糕。
答案 3 :(得分:2)
确保您在视图上定义的命名空间与模型的命名空间匹配。
答案 4 :(得分:2)
如果将项目属性更改为目标4.5.1,
其他地方很多的targetFramework仍然会说45
您可以在root web.config中找到3-4次targetFramework 以及各种packages.config。
我遇到了同样的问题,将Project更改为目标4.5并将其清除。
最好不要定位4.5.1
答案 5 :(得分:2)
我遇到了同样的问题。解决方案是卸载项目MVC Nuget Package并重新安装它。
答案 6 :(得分:2)
将项目属性中所有配置的项目输出路径更改为/bin
。这很奇怪,但似乎当VS 项目输出被推到/bin/Debug
或/bin/Release
时,智能感知被彻底破坏了。
答案 7 :(得分:2)
我在MVC 5项目中遇到了同样的错误。我的情况是,Views文件夹中的Web.config没有以某种方式发布。添加它可以解决问题。
答案 8 :(得分:1)
我有同样的错误,只是改变了 至
我只是想在控制台应用程序中获取cshtml intellisense,这样我就可以回到标准的基础webviewpage了。
答案 9 :(得分:1)
我是我的情况,我必须通过关闭Visual Studio并删除此文件夹来reset the Visual Studio Component Cache:
C:\ Users \ [用户名] \ AppData \本地\微软\ VisualStudio的\ 14.0 \ ComponentModelCache