我收到MVC 5 ViewData项错误,它是哪里来的?

时间:2019-03-06 20:15:58

标签: c# asp.net-mvc-5

我正在尝试创建一个页面,您可以在其中创建产品并从下拉列表中选择工厂,以便该产品与某个工厂相对应。仅当我尝试访问页面时,才会出现以下错误:

  

具有键“ 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; }
}

有人可以帮助我,告诉我这个错误来自何处以及如何解决该问题吗?

0 个答案:

没有答案