1

我的问题很简单。可以说我有一个用户下拉列表。在数据库中,我的用户表有 3 个字段:

 user_id
 user_name
 user_firstname

在我的 MVC 应用程序中,我想将这些用户链接到项目。所以这就是我想要下拉菜单的原因。

现在,我想要一个选择列表,以 ID 作为值,名字和姓氏是“文本”

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

现在我如何在文本中获得名字?这应该很容易,但似乎不是......

4

2 回答 2

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>,但每个人都有自己的。

于 2010-02-25T19:50:16.080 回答
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");
于 2010-02-25T16:05:45.337 回答