在SelectList中设置自定义文本字段

时间:2011-02-13 05:05:10

标签: c# asp.net asp.net-mvc

我正在尝试在我的视图页面上显示一个包含自定义文本值的下拉列表。

我正在尝试显示联系人列表。联系人包含ContactID,FirstName和LastName。

<%= Html.DropDownListFor(m => m.ContactId, new SelectList(Model.Contacts, "ContactID", "LastName"), "- Select a Contact -") %>

现在我只是显示姓氏,但我想在下拉列表中显示名字和姓氏。

2 个答案:

答案 0 :(得分:21)

我一直在寻找相同的问题,你的问题是谷歌的第一个结果。我知道你问过一年前,但是对于所有其他人都会找到这个页面:

    Html.DropDownListFor(m => m.ContactId, 
        new SelectList(
            Model.Contacts.Select(
            c => new 
            { 
                Id = c.ContactId, 
                FullName = c.FirstName + " " + c.LastName 
            }), 
            "Id", 
            "FullName"))

在我的情况下,我无法更改“联系”类。

答案 1 :(得分:6)

更改您的联系人类别,添加属性:

public class Contact {
    public string FirstNameLastName { get { return FirstName + " " + LastName; } }
}

然后使用它:

<%= Html.DropDownListFor(m => m.ContactId, new SelectList(Model.Contacts, "ContactID", "FirstNameLastName"), "- Select a Contact -") %>