SelectListItem 文本未显示

SelectListItem Text not being displayed

我正在尝试填写一个表单供用户注册 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>

这会生成下拉列表,其中包含来自查找 table 的正确项目数,但显示的文本是 'System.Web.Mvc.SelectListItem' 而不是县名。

非常感谢任何帮助!

试试这个

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
                };

因为您不应该用 IEnumerable<SelectListItem> 填充 SelectList。使用 SelectList IEnumerable<SelectListItem> 但不能同时使用两者。

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

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