我正在尝试将一个下拉列表添加到强类型剃刀视图中。 ASP.Net MVC 4.0,Razor View引擎版本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'的定义,并且没有扩展方法'DropDownListFor'接受类型'System.Web.WebPages.Html.HtmlHelper'的第一个参数可以找到(你错过了使用指令或程序集引用吗?)
并且它给出了错误:
错误3当前上下文中不存在名称“model”
我检查了View文件夹中的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>
答案 0 :(得分:1)
下面的配置代码行必须更改为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" />
答案 1 :(得分:1)
我花了一天时间来处理这个错误,结果是与下拉列表的VM数据源发生数据类型冲突(即它不是IEnumerable类型的列表)。出于某种原因,VS2012认为错误与命名空间有关,即使它出现在Intellipath中。
答案 2 :(得分:0)
我遇到了这个问题(仅限html.displayFor)。
我不确定它是如何开始的但我通过更换以下内容来解决它:
var React = require('react');
var RecipePage = React.createClass({
componentDidMount: function() {
console.log('mounted!');
},
render: function() {
return (
<div>Random Page</div>
);
}
});
module.exports = RecipePage;
与
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
在View文件夹的Web.config文件中。