我有一个已升级到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
请指导我究竟缺少任何参考资料???
答案 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的最新支持版本应该用于所有正在使用的软件包。