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

C# 在SelectList中设置自定义文本字段,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我试图在我的视图页面上显示一个下拉列表,该下拉列表具有自定义文本值 我正在尝试显示联系人列表。联系人包含联系人ID、姓氏和姓氏 <%= Html.DropDownListFor(m => m.ContactId, new SelectList(Model.Contacts, "ContactID", "LastName"), "- Select a Contact -") %> m.ContactId,新建选择列表(Model.Contacts,“ContactId”,“La

我试图在我的视图页面上显示一个下拉列表,该下拉列表具有自定义文本值

我正在尝试显示联系人列表。联系人包含联系人ID、姓氏和姓氏

<%= Html.DropDownListFor(m => m.ContactId, new SelectList(Model.Contacts, "ContactID", "LastName"), "- Select a Contact -") %>
m.ContactId,新建选择列表(Model.Contacts,“ContactId”,“LastName”),“-选择联系人-””%>

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

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

public class Contact {
    public string FirstNameLastName { get { return FirstName + " " + LastName; } }
}
然后使用它:

<%= Html.DropDownListFor(m => m.ContactId, new SelectList(Model.Contacts, "ContactID", "FirstNameLastName"), "- Select a Contact -") %>
m.ContactId,新建选择列表(Model.Contacts,“ContactId”,“FirstNameLastName”),“-选择一个联系人-”%”%>

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

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

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

+1我过去就是这样做的,它工作得很好。几乎相同的代码也像服务器端的boss一样工作。谢谢@sickbattery