给出类名而不是值的下拉列表

我正在尝试从数据库表中填充下拉列表,并在我的控制器中使用此代码


model.EngineerNameList = new List<Engineers>();

foreach (string Engineer in allData.Select(x => x.EngineerName).Distinct().ToList())

{

    model.EngineerNameList.Add(new Engineers() { EngineerName = Engineer });

}

这在我的下拉列表中返回了正确数量的项目,但我得到了在我的班级中定义的班级名称


public partial class Engineers

{

    public int ID { get; set; }


    [StringLength(100)]

    public string EngineerName { get; set; }

}

我正在使用以下内容在我的视图中显示


 <div class="form-group">

    <label for="Engineer">Select Engineer:</label>

    <select id="Name" name="Name" onchange="this.form.submit()">

        @if (Model.EngineerNameList != null)

        {

            foreach (var Title in Model.EngineerNameList)

            {

            <option value="@Title" >@Title </option>

            }

        }

        </select>

</div>

我的问题是我无法将类中包含的值放入下拉列表中。这是我在我的页面上看到的:

http://img.mukewang.com/60e95cf70001604003210102.jpg

三国纷争
浏览 153回答 2
2回答

千万里不及你

EngineerNameList是Engineers模型的集合,所以当你迭代它时,你会得到一个Engineers.&nbsp;这就是为什么您会ToString()在下拉列表中看到您的模型的表示。因此,要显示适当的工程师姓名,请将代码更新为<option&nbsp;value="@Title.EngineerName">@Title.EngineerName</option>
打开App,查看更多内容
随时随地看视频慕课网APP