MVC 5-应用程序显示System.Web.WebPages.Html.HtmlHelper的错误消息,用于像viewbag这样的控件

时间:2014-01-23 14:08:18

标签: asp.net-mvc asp.net-mvc-5

我有一个已升级到MVC 5的现有MVC项目。我使用Visual Studio Package Manager更新已安装的现有软件包。

'System.Web.WebPages.Html.HtmlHelper' does not contain a definition for 'BeginForm' and no extension method 'BeginForm' 

问题与其他控件(如操作链接)相同。我已经按照升级MVC项目提到的方法进行了必要的webconfig修改。申请没有显示出智慧。如果我保持视图打开,则会抛出错误。更重要的是,如果我关闭视图并构建应用程序,则不会抛出任何错误而没有任何错误。运行正常。

在为相似的现有帖子标记之前,请仔细阅读帖子。我已经尝试过在stackoverflow上提供的几个现有解决方案。

我在这里提到的链接很少 System.Web.Mvc.HtmlHelper' does not contain a definition for 'ActionLink' stackoverflow.com/questions/12041633/razor-views-not-seeing-system-web-mvc-htmlhelper

http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2

请指导我究竟缺少任何参考资料???

2 个答案:

答案 0 :(得分:1)

您的web.config文件中应该有以下程序集(在Views文件夹中):

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

在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" />
    <add namespace="GildenhuisHoboken2014" />
  </namespaces>
</pages>

答案 1 :(得分:-5)

好的我已经在应用程序中修复了它应该有一个标签

网页版应为3.0.0.0

网页和Razor版本应该是3.0而不是3.1

mvc 5.1.0.0

您需要为旧版代码指定相关汇编

不要使用upgrade package命令。使用管理NuGet包管理器界面作为更新所需的稳定版本。

mvc5的最新支持版本应该用于所有正在使用的软件包。