SelectListItem文本未显示

时间:2015-02-01 13:55:18

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

我正在尝试为用户注册一个asp.net MVC网站完成一个表单,我正在努力让下拉列表正确显示文本。该模型具有以下内容:

public SelectList CountiesList;

在构造函数中,实体是我的数据库上下文:

CountiesList = new SelectList(
                from c in entities.Counties
                select new SelectListItem
                {
                    Value = c.CountyID.ToString(),
                    Text = c.County //the county name, nvarchar/string
                });

在我的cshtml中:

<div class="align-center">
    <label>County</label>
    @Html.DropDownListFor(x => x.County, Model.DropDowns.CountiesList)
</div>

这是从查找表中生成具有正确数量的项目的下拉列表,但显示的文本是“System.Web.Mvc.SelectListItem”&#39;而不是郡的名字。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

试试这个

public IEnumerable<SelectListItem> CountiesList;

CountiesList =  from c in entities.Counties
                select new SelectListItem
                {
                    Value = c.CountyID.ToString(),
                    Text = c.County //the county name, nvarchar/string
                };

因为你没有用SelectList填充IEnumerable<SelectListItem>。使用SelectList IEnumerable<SelectListItem>,但不能同时使用。

答案 1 :(得分:0)

我怀疑你的问题比这更深入,因为想要将SelectList作为模型是不正常的。我认为有可能在模型中存储Dropdowns列表表示存在概念错误。

您的模型可能应该是您的Entity(县的列表?)然后您可以通过将第二个参数传递给Html.DropDownListFor助手SelectList来绑定县的下拉列表创建完全相同的方式,同时启动您的CountiesList。