C# 具有键“SelectedItem”的ViewData项的类型为“System.String”,但必须为“IEnumerable
我有一个下拉列表,该列表在页面加载时正确填充,但当我选择一个选项并将其与其他字段的数据一起提交回来时,我收到了这个错误。是否需要将其重置为默认值?在下面的代码中,是类型SelectListItem的列表C# 具有键“SelectedItem”的ViewData项的类型为“System.String”,但必须为“IEnumerable,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个下拉列表,该列表在页面加载时正确填充,但当我选择一个选项并将其与其他字段的数据一起提交回来时,我收到了这个错误。是否需要将其重置为默认值?在下面的代码中,是类型SelectListItem的列表 @using (Html.BeginForm()) { @Html.DropDownListFor(n => n.SelectedItem, Model.Industries) <br> //MORE CONTROLS <br&g
@using (Html.BeginForm())
{
@Html.DropDownListFor(n => n.SelectedItem, Model.Industries)
<br>
//MORE CONTROLS
<br>
<input type="submit" value="Calculate" />
}
[HttpGet]
public ActionResult Calculate()
{
ClassName DataStuff = new ClassName ();
return View(new ClassName { Industries = DataStuff.IndustryList()
});
}
[HttpPost]
public ActionResult Calculate(ClassName Items)
{
ClassName CompleteItems = RetrieveData(Items);
// above additional calculations
return View(CompleteItems);
}
带有相关字段的模型为:
public class ClassName
{
public string SelectedItem { get; set; }
public IEnumerable<SelectListItem> Industries { get; set; }
public List<SelectListItem> IndustryList()
{
//populating the DDL
}
}
一,。
将行业定义为IEnumerable或IEnumerable
如果您将行业定义为列表
把工业铸造成无数的样子
IEnumerableModel.工业
2.在您的模型中,代替公共字符串SelectedItem{get;set;}use
公共字符串行业{get;set;}和
在视图中,使用新属性更新use@Html.DropDownListForn=>n.Industry,Model.Industries什么是行业类型。它应该是IEnumerableIt类型,它是List类型。这对这种情况不正确吗?就像IEnumerable刚才所做的那样定义它。相同错误。请共享产生相同错误的模型:SelectListItem是否为System.Web.Mvc.SelectListItem类型?使用刚才选中的名称空间检查全名。是的,它是。试试这个公共字符串行业{get;set;}而不是列表?它必须保存DDL内容,不是吗?