我正在尝试创建一个页面,您可以在其中创建产品并从下拉列表中选择工厂,以便该产品与某个工厂相对应。仅当我尝试访问页面时,才会出现以下错误:
具有键“ FactoryCode”的ViewData项的类型为“ System.Int32”,但必须类型为“ IEnumerable”。
这是我在“产品”控制器中的方法:
private void FillDropDownList()
{
var query1 = db.Factorys.Select(cc => new { cc.FactoryCode, cc.FactoryName }).Distinct();
List<SelectListItem> items = new List<SelectListItem>();
foreach (var item in query1)
{
items.Add(new SelectListItem
{
Text = item.FactoryName,
Value = item.FactoryCode.ToString()
});
}
items.Insert(0, new SelectListItem { Text = "Please select", Value = "0" });
ViewData["FactoryItems"] = items;
}
以及我对“产品页面”的部分看法:
<div class="form-group">
@Html.LabelFor(model => model.FactoryCode, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("FactoryCode", ViewData["FactoryItems"] as List<SelectListItem>, new { @id = "classitem" })<br />
@Html.ValidationMessageFor(model => model.FactoryCode, "", new { @class = "text-danger" })
</div>
工厂型号:
public class Factory
{
[Key]
public int FactoryCode { get; set; }
public string FactoryName { get; set; }
}
有人可以帮助我,告诉我这个错误来自何处以及如何解决该问题吗?