Asp.net mvc 4 MVC 4-';System.Web.WebPages.Html.HtmlHelper';不包含的定义

Asp.net mvc 4 MVC 4-';System.Web.WebPages.Html.HtmlHelper';不包含的定义,asp.net-mvc-4,visual-studio-2012,Asp.net Mvc 4,Visual Studio 2012,是的,我已经在s.o.的其他地方搜索了一个解决方案,这些解决方案都不适合我。问题是: 1) Visual Studio 2012->新建网站 2) 创建一个普通的MVC4站点(RazorV2)和.NET4.5 3) 将以下代码添加到Default.cshtml @using (Html.BeginForm()) { } 4) 启动并获取此错误: CS1061: 'System.Web.WebPages.Html.HtmlHelper' does not contain a definitio

是的,我已经在s.o.的其他地方搜索了一个解决方案,这些解决方案都不适合我。问题是:

1) Visual Studio 2012->新建网站

2) 创建一个普通的MVC4站点(RazorV2)和.NET4.5

3) 将以下代码添加到Default.cshtml

@using (Html.BeginForm())
{

}
4) 启动并获取此错误:

CS1061: 'System.Web.WebPages.Html.HtmlHelper' does not contain a definition for 'BeginForm' and no extension method 'BeginForm' accepting a first argument of type 'System.Web.WebPages.Html.HtmlHelper' could be found (are you missing a using directive or an assembly reference?)
有什么好处

编辑,将我的网站作为zip上传到此处,仅276K:

此消息表示System.Web.Mvc版本不支持
BeginForm
。可能有许多原因。要找出问题的原因,您可以尝试以下方法之一:

  • 这通常是由于删除位于视图文件夹中的第二个web.confing而导致的。请参阅

  • 请参阅项目参考资料中的
    System.Web.Mvc
    版本。它可能是不支持
    BeginForm
    的旧版本

  • BeginForm
    之前添加
    System.Web.Mvc.html
    ,查看是否有这样的方法


确保Views>Web.config中的Razor版本号相互匹配

<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0 [etc]

将您的_layoutPage移动到Views文件夹中

如果您列出尝试过的内容将有所帮助:using statement exists、cleanned solution、removed.user project file、NUGET restore等。您是否尝试过更新web.config,如图所示?我在s.o.尝试了大约20种不同的解决方案。,所以我不想把它们都列出来,但实际上没有任何帮助。尝试了goldeneye的修复,但没有效果。添加了一个链接到我的网站的zip,也许有人可以尝试快速运行它,并得到相同的错误。你能创建解决方案并上传到网站上吗?已经创建了,它也在问题的底部,这里:这是一个太过投机的答案。这最多应该是一个评论。呵呵,大约4年太晚了,我们甚至不再使用BeginForm,而是thxThanks buddy HughSeagraves@Huge你说得对-我就是这样-System.Web.WebPages.Razor是3.0.0.0,System.Web.MvcSystem.Web.Mvc是4.0.0.0,但我该如何修复它?PM说这两个都是最新的,手动更改当然会出错。谢谢
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0 [etc]