Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Visual Studio 2015 MVC razor HTMLHelper intellisense不适用于升级项目_Asp.net Mvc_Razor_Intellisense - Fatal编程技术网

Asp.net mvc Visual Studio 2015 MVC razor HTMLHelper intellisense不适用于升级项目

Asp.net mvc Visual Studio 2015 MVC razor HTMLHelper intellisense不适用于升级项目,asp.net-mvc,razor,intellisense,Asp.net Mvc,Razor,Intellisense,我使用Visual Studio 2015已经一年多没有问题了。最初在VS 2010上开发并升级到VS 2015的一个MVC.net项目在视图中的所有HTML帮助程序上都有红色错误线。所有的东西仍然可以编译和运行,只是intellisense有限,打开视图时会显示大量错误 我注意到的一点是,HTML助手使用的名称空间与我的其他工作项目不同 例如,如果我将鼠标悬停在Html.begin上,名称空间将显示WebPage.Html。在工作项目中,Html.BeginForm显示WebViewPage

我使用Visual Studio 2015已经一年多没有问题了。最初在VS 2010上开发并升级到VS 2015的一个MVC.net项目在视图中的所有HTML帮助程序上都有红色错误线。所有的东西仍然可以编译和运行,只是intellisense有限,打开视图时会显示大量错误

我注意到的一点是,HTML助手使用的名称空间与我的其他工作项目不同

例如,如果我将鼠标悬停在Html.begin上,名称空间将显示WebPage.Html。在工作项目中,Html.BeginForm显示WebViewPage

我已经花了好几个小时浏览了以前帖子中的所有建议,但都没有收到任何效果

因为所有的东西都可以编译并实际工作,我相信这个问题与VS工具或/views/web.config有关。我已经验证了该工具在.proj文件中设置为14,并且view/web.config中的所有引用都是正确的,但没有任何效果。当然,我已经清理和重建了解决方案,次数多得数不清。我还从nuget完全安装了mvc.net,并多次重新安装

这个项目中唯一奇怪的限制是,我无法将其升级到MVC4之后,因为该项目中还有几个其他依赖项与.NET4相关联

这是my view/web.config的相关部分

<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<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" />
  </namespaces>
</pages>
</system.web.webPages.razor>

<appSettings>
  <add key="webpages:Enabled" value="false" />
</appSettings>
这是my web.config中的相关部分

 <appSettings>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
 </appSettings>
  <system.web>
<httpRuntime maxRequestLength="1048576" executionTimeout="1500"/>
<customErrors mode="RemoteOnly"></customErrors>
<compilation debug="true" targetFramework="4.0">

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

我该怎么办

我终于明白了这一点,我想我会发布这篇文章,以防其他人遇到这场噩梦

这是一个非常古老的项目,已经通过许多版本的Visual Studio和.net进行了升级。它有一个带有非常旧的MVC DLL的可部署程序集。这是一个VS2010结构。即使我通过Nuget成功地升级了MVC,这些旧dll也被用作dll引用

为了解决这个问题,我卸载了项目并手动从项目中删除了包含_bin_deployableAssemblies文件夹的行。之后,我的参考资料显示了我从Nuget多次安装的MVC版本的正确版本号

然后剩下要做的就是浏览web.config文件并手动将所有引用DLL的版本更改为适当的更新版本


经过清理和重建,一切都恢复正常

嘿,蒂姆,我不知道我可以接受我自己的答案:。我刚试过,它说我需要等两天才能接受。我会尽量记住在几天内回来做这件事。