Asp.net mvc 4 ASP.NET MVC 4 Razor视图无法识别HTML帮助程序的DropDownList

Asp.net mvc 4 ASP.NET MVC 4 Razor视图无法识别HTML帮助程序的DropDownList,asp.net-mvc-4,razor-2,Asp.net Mvc 4,Razor 2,我正在尝试向强类型razor视图添加dropdownlist。ASP.NETMVC4.0,RazorView引擎版本2.0.0.0 @using System; @model SampleApp.Models.ServiceRequestModel @{ ViewBag.Title = "ServiceRequest"; } @Html.DropDownListFor(m=>m.CategoryID, Model.Categories) 模型如下: public class Se

我正在尝试向强类型razor视图添加dropdownlist。ASP.NETMVC4.0,RazorView引擎版本2.0.0.0

@using System;
@model SampleApp.Models.ServiceRequestModel

@{
  ViewBag.Title = "ServiceRequest";
}

@Html.DropDownListFor(m=>m.CategoryID, Model.Categories)
模型如下:

public class ServiceRequestModel
{
    public int ID { get; set; }
    public int CategoryID { get; set; }

    public SelectList Category { get; set; }
}
它总是在CSHTML文件中显示intellisense中的错误,如下所示:

System.Web.WebPages.Html.HtmlHelper'不包含'DropDownListFor'的定义,并且找不到接受'System.Web.WebPages.Html.HtmlHelper'类型的第一个参数的扩展方法'DropDownListFor'(是否缺少using指令或程序集引用?)

同时,它也给出了以下错误:

错误3当前上下文中不存在名称“model”

我已检查视图中的web.config文件夹:

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


下面的配置代码行必须更改为4.0.0.0

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

更改为

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

我花了一天多的时间处理这个错误,结果它与dropdownlist的VM数据源发生了数据类型冲突(即它不是类型IEnumerable的列表)。出于某种原因,VS2012认为该错误与名称空间有关,即使它出现在Intellipath中。

我遇到了这个问题(仅与html.displayFor有关)

我不确定它是如何开始的,但我通过替换以下内容解决了它:

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

您找到这个问题的解决方案了吗?是的,已经解决了。上面配置中主机工厂的行指向错误的版本,它应该是3.0.0.0,如下所示:您介意提供此答案吗?它将帮助有类似问题的用户。
<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
</appSettings>