2010-02-25 30 views
1

我的问题很简单。可以说我有一个用户下拉。 在数据库中,我有我的user表3个字段:在我的MVC应用程序从多个字段填充选择列表

user_id 
user_name 
user_firstname 

我想这些用户链接到项目。所以这就是为什么我想要下拉。

现在,我想有一个选择列表的,与ID为值,名字和姓氏是“文”

SelectList sl = new SelectList(users, "user_id", "user_name"); 

现在我该怎样在文本获得名字也?这应该是相当容易的,但似乎它不是...

回答

6

使用LINQ到你的用户列表转换成的SelectListItem列表。

var selectOptions = 
    from u in yourUserQuery 
    select new SelectListItem { 
     Value = u.user_id, 
     Text = u.user_firstname + " " + u. user_name 
    }; 

然后,您可以将其转换为SelectList,但您认为合适。我个人喜欢为IEnumerable<SelectListItem>定义一个.ToSelectList()扩展方法,但是对于他自己的。

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"); 
+0

这是在你的控制器或模型? –

+0

这是在我的模型中。 – John

相关问题