剃刀视图看不到System.Web.Mvc.HtmlHelper


71

我正在升级到MVC4。我已按照http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806上的说明进行操作,但在Razor视图和布局中却出现类似以下错误

  • 'System.Web.WebPages.Html.HtmlHelper'不包含'BeginRouteForm'的定义,也没有找到接受类型为'System.Web.WebPages.Html.HtmlHelper'的第一个参数的扩展方法'BeginRouteForm'缺少using指令或程序集引用?)

我也有类似的错误:

  • “名称“ Viewbag”在当前上下文中不存在

当我将鼠标悬停在@Html上时,我可以看到它的类型为System.Web.WebPages.Html.HtmlHelper,而不是System.Web.Mvc.HtmlHelper

不确定是否还有其他相关信息,但这就是我的位置:

  • 我尚未将sln中的类库等更新为.net 4.5。
  • 该项目是在VS2010中创建的,但是我正在VS2012中进行迁移
  • 该项目将打开并在VS2012,.Net 4.0,MVC 3中运行正常

任何指针表示赞赏。

编辑: web.config中的所有引用和文件已升级为:

  • System.Web.Mvc,版本= 4.0.0.0
  • System.Web.WebPages,版本= 2.0.0.0
  • System.Web.Helpers,版本= 2.0.0.0
  • System.Web.WebPages.Razor,版本= 2.0.0.0

Edit(2): 在元素的/views/web.config(如果尝试在下面的@Paul的解决方案中,则为/views/shared/web.config)中,我有自己的基本类型,该基本类型继承自System.Web。 Mvc.WebViewPage,包含库中的引用已更新为MVC4,进入定义将我带到MVC4 dll。

新版本在这方面有什么变化吗?我看不到发行说明中的​​任何相关内容。


3
您检查过web.configs了吗?
丹尼尔·怀特

您的web.config引用什么版本的WebPage?
保罗

嗨,您解决了这个问题吗?我有同样的问题。任何帮助都会很棒。
本·卡梅伦

抱歉,我这样做了……但是我无法记录下来。我摆弄了所有配置几个小时,最终它开始工作了。我从来没有指出“魔术”修复程序。
NikolaiDante 2013年

我遇到类似的问题,但是我的智能错误是在同一项目中引用静态类时出现的。它找不到名称空间。有什么想法吗?
slashCoder

Answers:


93

我在使用Web应用程序时遇到了这个问题-我的 .cshtmlSystem.Web.WebPages.WebViewPage当我需要使用时,文件卡在了基类上System.Web.Mvc.WebViewPage

首先,确保您的〜/ Views / web.config文件具有正确的pageBaseType。就我而言,我设置为System.Web.Mvc.WebViewPage

<configuration>
  <system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <!-- ... -->
    </pages>
  </system.web.webPages.razor>
</configuration>

然后, 重要的是,如果上述条件已经很好,那么一些人就会发现这是关键:

  1. 对解决方案进行清洁
  2. 卸载有问题的项目
  3. 删除 .userVisual Studio在项目旁边生成文件。
  4. 用问题重新加载项目
  5. 建立解决方案

对于VS2015.user.sln文件已移动到.vs文件旁边创建的隐藏文件夹.sln。但是,从下面的评论中,错误消息向我暗示该工具完全使用了错误版本的MVC,删除此文件夹并不能解决问题。据我所知,没有已知的解决方案。


11
我认为第二部分是关键。谢谢!
卡林2014年

3
Matt-我在此上花费了HOURS,最后您的解决方案成功了。谢谢!卸载,删除.user和重新加载对我有用。.user文件到底是什么?
mokumaxCraig 2014年

2
.user文件是Visual Studio的项目设置(例如当前打开的窗口等)的缓存。以我的经验,如果我发现有任何问题,删除.user文件可能会有所帮助。另外,请注意.sln旁边的.suo文件;这是同样的事情,只是解决方案文件。(在VS的旧版本中,此文件可能会损坏,例如,破坏您的智能感知...)
Matt DeKrey 2014年

1
太糟糕了:(这不适用于VS2015中的相同症状
Serj Sagan

9
我同意@SerjSagan-这不能解决VS2015中的这些症状。我遇到的错误'_Page_Views_Home_Index_cshtml' does not contain a definition for 'ViewBag'在编辑器中并且The type or namespace name 'AspNet' does not exist in the namespace 'Microsoft'在错误列表(CS0234)中。我正在使用MVC 5,当我从VS2013更新到VS2015时,一切都开始了。如果有人有任何帮助,将不胜感激,因为这开始让我很烦!rr!
BWHazel

27

更新到MVC 5时,我遇到了同样的问题,它通过更新Views文件夹中的web.config得以解决。

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.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.Optimization"/>
    <add namespace="System.Web.Routing" />
  </namespaces>
</pages>

主机-> factoryType设置为version:4.0.0.0,希望这对任何人都有帮助。


1
对对对。有帮助!谢谢!
agarcian 2014年

1
谢谢。从字面上看,您已经尝试了20多种不同的解决方案,而您的解决方案是第一个起作用的。非常感激。
尼克

9

我在这里尝试了所有解决方案,但没有一个对我有用。同样,我的网站运行正常,但在我看来Visual Studio无法识别的很多情况下,我没有智能感知并得到红色波浪线,其中之一是Html.BeginForm()与其他有关的东西ViewBag

我正在处理一个新的MVC 5项目。经过数小时的web.config行比较,我终于找到了解决该问题的方法。

我的根目录中的web.config包含以下行:

<system.web>
  <compilation debug="true" targetFramework="4.5" />

  <!-- ... -->
</system.web>

我将之前的项目与未使用MVC 5的项目进行了比较,并复制了一个新块,我发现它丢失了,它是:

<system.web>
  <compilation debug="true" targetFramework="4.5">
    <assemblies>
      <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Web.Helpers, Version=3.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.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
  </compilation>

  <!-- ... -->
</system.web>

我将上面的代码块复制到了新项目的根目录中的web.config中,更改了版本以匹配项目引用中找到的每个程序集的编号(右键单击提到的每个引用,然后选择“属性”,“版本”在属性窗口底部的选定参考)。

实现上述之后,我现在有智能感知,但没有得到下的东西像任何未知的红色线条Html.BeginFormViewBag.Title等等。


谢谢你!不确定,但这可能仅在/Views/Web.Config文件中是必需的,但是我将其放在根目录中,并且达到了目的。干杯。
Serexx 2015年

我在属性窗口中针对实际dll版本修订了每个引用,他们发现了问题。感谢队友为我指出正确的方向。
Korayem 2015年

非常感谢!我遇到了与您相同的问题,并已解决:)
Quiver

6

尽管我的网站正在编译并且运行良好,但我已经干净地运行了一个项目,并且安装或重新安装了所有内容,但仍然出现很多Intellisense错误。当我在Views文件夹中的web.config文件中更改版本号时,Intellisense终于为我工作了。就我而言,我正在Orchard中编写一个模块,该模块在MVC区域中运行,但是我认为这将对使用最新版本的MVC的任何人有所帮助。这是我从Views文件夹中的web.config

    <?xml version="1.0"?>
    <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>

      <system.web.webPages.razor>
        <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <pages pageBaseType="Orchard.Mvc.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" />
            <add namespace="System.Linq" />
            <add namespace="System.Collections.Generic" />
          </namespaces>
        </pages>
      </system.web.webPages.razor>

      <system.web>

        <!--
            Enabling request validation in view pages would cause validation to occur
            after the input has already been processed by the controller. By default
            MVC performs request validation before a controller processes the input.
            To change this behavior apply the ValidateInputAttribute to a
            controller or action.
        -->
        <pages
            validateRequest="false"
            pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
            pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
            userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
          <controls>
            <add assembly="System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" namespace="System.Web.Mvc" tagPrefix="mvc" />
          </controls>
        </pages>
      </system.web>

      <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />

        <handlers>
          <remove name="BlockViewHandler"/>
          <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
        </handlers>
      </system.webServer>
    </configuration>

对我来说,它是将<configSections>子项从2.0升级到3.0版。谢谢!
Jakob Hviid

这是乡亲!请注意Views / Web.config中的版本号。它们必须匹配您引用的程序集版本。
Dimskiy

4

您需要复制Views/Web.config/Shared。这将告诉Razor使用MVC基本类型和解析器。您可以在此处了解更多信息:http : //blog.slaks.net/2011/02/dissecting-razor-part-3-razor-and-mvc.html


谢谢,但没有喜悦。我在Edit(2)中提供了有关该问题的更多信息。
NikolaiDante 2012年

2
消除了警告消息,但完全破坏了网站!我们在这里进行了很多MVC开发,但我从未在/ shared文件夹中看到这些文件。
Jgreenst 2014年

3

从升级Visual Studio 2013Visual Studio 2015以后,我正在处理此问题。尝试了本和其他类似SO帖子中的大多数建议后,我终于找到了问题。修复的第一部分是将我的所有NuGet内容更新到最新版本(VS13如果遇到此Nuget错误,则可能需要这样做),之后,我不得不(可能需要修复)意见 Web.config。这包括:

  1. MVC版本及其子库修复为新版本(展开References然后右键单击,Sytem.Web.MVC然后Properties获取版本)
  2. 修复Razor版本。

我的看起来像这样:

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

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.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.Optimization"/>
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>

  <system.web>
    <httpHandlers>
      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>
    <pages
      validateRequest="false"
      pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
      pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
      userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />

    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>

尝试了所有...不幸的是没有帮助..!:(
教父

3

Visual Studio 2017用户的更新:

如果您刚刚迁移到Visual Studio 2017,并且您的项目是MVC4,请确保返回VS2017 Installer并检查“ ASP.NET和Web开发”部分下的MVC4选项。它是可选组件,默认情况下未选中。

这解决了我的问题


那就是我的解决办法。谢谢。
安迪·琼斯

2

在合同制世界中,我经常使用使用较旧图像的机器。在尝试了上述所有内容之后,我决定将VS 2013更新为最新版本(更新4)。90分钟后,重新启动,引用现在可以正常工作了!希望这可以帮助!


1
是的,我也对您有所帮助更新5(我安装了最新的)为Visual Studio 2013年
paweln66

2

徒劳地尝试了所有事情,我发现在我的情况下这是行不通的,因为Web Project csproj文件中的属性值不正确。当我将ToolsVersion更改为14时,它与我当前的IDE版本(即Visual Studio 2015)匹配,一切都像一个魅力:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition=
  .....

2

对于将项目从VS 2013迁移到VS 2015后遇到此问题的那些人,我能够通过安装来自https://visualstudiogallery.msdn.microsoft.com/c94a02e9-f2e9-的ASP.NET工具更新来解决此问题。4bad-a952-a63a967e3935 / file / 77371/6 / AspNet5.ENU.RC1_Update1.exe?SRC = VSIDE&UPDATE = TRUE


这使我走上了正确的道路。我的VS 2105仍然需要Visual Studio Update1。更新之后一切正常。
jrob

有趣的是,Update 1并没有为我修复它,但是Web工具更新了。
Chipples

在这里工作,但我也必须清除所有用户数据。不错的解决方案。
creality

1

只是为了扩展Matt DeKrey的答案,只需删除csproj.user文件(无需重新创建解决方案)就可以为我解决问题。

我唯一的副作用是我需要将“开始操作”重置为使用特定页面。


1

我在MSDN上使用以下文章来解决此问题(在这种情况下,从MVC 4到MVC 5)

https://docs.microsoft.com/zh-cn/aspnet/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc- 5和网络API-2

本文的主要摘录为:

主Web.config(不是“视图”文件夹中的那个)

在运行时块中,将System.Web.Mvc更新为5.0.0.0,将System.Web.Helpers更新为3.0.0.0,将System.Web.WebPages更新为3.0.0.0

<dependentAssembly>
  <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>

<dependentAssembly>
  <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>

<dependentAssembly>
  <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>

然后查找appsettings块并将网页:版本值更新为3.0.0.0

<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
</appSettings>

查看Web.config

将主机factoryType块更新为System.Web.Mvc到5.0.0.0

<system.web.webPages.razor>
   <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
   <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
         <add namespace="System.Web.Mvc" />
      </namespaces>
   </pages>
</system.web.webPages.razor>

然后在页面块下,将对System.Web.Mvc的所有引用更新为5.0.0.0

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

最后,在配置块下,将System.Web引用更新为3.0.0.0

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

1

最近遇到了同样的问题,这就是我的解决方法:在Visual Studio中,打开有问题的项目,转到:

  1. 工具-> NuGet软件包管理器->管理解决方案的NuGet软件包
  2. 在打开的窗口中,选择更新。然后单击全部更新

它将加载项目中缺少的内容,所有内容都应恢复正常。



0
*<system.web>
<compilation debug="true" targetFramework="4.5">
    <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Helpers, Version=3.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.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
</compilation>*

缺少此配置,将其添加并设置适当的程序集版本


0

作为主题的一种变体,我可能发誓我的Views \ Web.config是正确的:

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

但是我实际上需要参考Version=4.0.0.1,不是Version=4.0.0.0因为安全更新被推迟了一段时间。


0

对我而言,这是一个愚蠢的部署错误:Web项目可以具有多个web.config。它正在开发人员的计算机上工作,而不是在生产环境中工作,但是我们没有意识到部署脚本仅将Web.config文件抓取到根目录,并且没有将Web.config文件复制到文件Views夹中。


0

我也遇到了这个特定问题;尝试使用剃须刀标签时无(或不正确)智能感知显示。我的特定问题是VS2015,抱怨Html.BeginForm在当前上下文中不存在。

我在MVC项目中设置了区域,并设法将错误原因的范围缩小到特定区域的web.config文件,而不是全局的web.config。

原来,对我来说,这个问题的原因是我在web.config中为无法正常工作的区域添加了一个SQL connectionString,这(我假设)引起了解析错误,但是项目正确编译了。

将connectionString移到全局web.config可以解决此问题。希望这可能对其他人有用。


0

我的情况只有在我创建了一个自定义类BaseViewPage并覆盖了WebViewPage该类之后才发生。我最初将以下内容添加到我的Main Web.confg文件中:

<pages pageBaseType="ZooResourceLibrary.Web.Support.BaseViewPage">

与“查看”文件夹中的web.config文件相同:

<pages pageBaseType="ZooResourceLibrary.Web.Support.BaseViewPage">

我尝试了许多其他答案,但在仍然允许我继续BaseViewPage上课的同时,没有一个成功的窍门。我修复它的方法是pageBaseType仅从Main Web.config文件中删除该属性。保留在View web.config中。


0

我在SO中遇到了几个答案,最后我意识到我的错误是我拼写了“ Html.TextBoxFor”。就我而言,我写的是“ Html.TextboxFor”。我没有在TextBoxFor中将B大写。修正了这个问题。问题解决了。我希望这可以帮助别人。


0

是的,一段时间以来,我一直在尝试解决此问题。我已经在各种Stack Overflow主题中使用了所有与此相关的解决方案,但似乎都没有用。

我今天早上刚刚解决了这个问题。在为项目和视图修复了web.config之后,请确保所有.dll版本都与references文件夹中的版本匹配。您将需要卸载项目,编辑.csproj,然后更新该文件中的所有.dll版本。

System.Web.Helpers
System.Web.Mvc
System.Web.WebPages

希望这会有所帮助,因为我终于解决了这个问题!没有更多的红色波浪线。

这也解决了上下文菜单问题,我无法在其中添加控制器,视图等。


-1

对我来说,解决方案是更改以下内容:

  <pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.