为什么 ListBox 在新行中填充来自 (.edmx) 模型的单个字符

why does ListBox populate individual characters from (.edmx) model on new line

我正在尝试从我的 Entity framework edmx 模型填充列表框,我似乎正在填充,但每个字符都出现在一个新行上,例如

H
一个
大号
O

而不是

这是我的控制器:

private dataEntities dbGame = new dataEntities();

[HttpGet] 
public ActionResult Index()
    {
        dbdata dbdata = new dbdata();
        List<SelectListItem> listSelectItems = new List<SelectListItem>();

        foreach (dbdata dbdata in dbGame.dbdata)
        {
            SelectListItem selectList = new SelectListItem();
            {
                selectList.Text = dbdata.GameTitle;
                selectList.Value = dbdata.GameId;
            };

            dbdata.GameTitle = selectList.Text;
            dbdata.Value = selectList.Value;


            listSelectItems.Add(selectList);
        }

        return View(dbdata);

    }

剃须刀:

@using (Html.BeginForm()) 
{
@Html.ListBox(Model.GameTitle, new SelectList(Model.GameTitle));
}

关于它为什么这样做有什么建议吗?

这是因为GameTitle 属性是字符串类型(一系列字符)。 所以,像这样尝试:

ViewBag.items = listSelectItems;
return View(dbdata);

在您看来:

 @Html.ListBox(Model.GameTitle,(IEnumerable<SelectListItems>)ViewBag.items)

你不需要:

        dbdata.GameTitle = selectList.Text;
        dbdata.Value = selectList.Value;

或者您可以在您的 dbdata 模型中放置一个类型为 List<SelectListItem> 的 属性,然后将 listSelectItems 分配给它,然后 return View(dbdata);