我正在尝试为用户注册一个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;而不是郡的名字。
非常感谢任何帮助!
答案 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。