我的问题非常简单。假设我有一个用户下拉列表。 在数据库中,我的用户表有3个字段:
user_id
user_name
user_firstname
在我的MVC应用程序中,我想将这些用户链接到项目。这就是为什么我想要下拉列表。
现在,我希望有一个选择列表,ID为值,名字和姓氏为'text'
SelectList sl = new SelectList(users, "user_id", "user_name");
现在我如何在文本中获得名字?这应该相当容易,但似乎不是......
答案 0 :(得分:6)
使用LINQ将您的用户列表转换为SelectListItem
。
var selectOptions =
from u in yourUserQuery
select new SelectListItem {
Value = u.user_id,
Text = u.user_firstname + " " + u. user_name
};
然后,您可以将其转换为SelectList
,但您认为合适。我个人喜欢为.ToSelectList()
定义一个IEnumerable<SelectListItem>
扩展方法,但是要为每个方法定义一个。{/ p>
答案 1 :(得分:1)
您需要以您需要的格式从数据库构建列表。这是我在数据库读入DataTable后所做的事情,
IList<UsrInfo> MyResultList = new List<UsrInfo>();
foreach (DataRow mydataRow in myDataTable.Rows)
{
MyResultList.Add(new UsrInfo()
{
Usr_CD = mydataRow["USR_NR"].ToString().Trim(),
Usr_NA = mydataRow["USR_NA_LAST"].ToString().Trim() + " , " +
mydataRow["USR_NA_FIRST"].ToString().Trim()
});
}
return new SelectList(MyResultList, "Usr_CD", "Usr_NA");