Jay
Jay

Reputation: 3082

Combining fields in the dropdownlistfor name field

I have the following dropdownlist for:

@Html.DropDownListFor(c => c.TargetedUser.ManagerUserID, 
    new SelectList(Model.UserList, "UserID", "Username",
    Model.TargetedUser.ManagerUserID), 
    new { @name = "TargetedUser.ManagerUserID" })

In the Username field I really want to be declaring the Users full name but this is held over two fields Forename and Surname. I have tried the following:

@Html.DropDownListFor(c => c.TargetedUser.ManagerUserID, 
    new SelectList(Model.UserList, "UserID", "Forename" + "Surname", 
    Model.TargetedUser.ManagerUserID), 
    new { @name = "TargetedUser.ManagerUserID" })

But this yielded an error as it was looking for a field called ForenameSurname

Upvotes: 0

Views: 226

Answers (1)

asymptoticFault
asymptoticFault

Reputation: 4529

How about projecting your list from the Model to have the full name:

@Html.DropDownListFor(c => c.TargetedUser.ManagerUserID, 
                      new SelectList(Model.UserList.Select(x => new { x.UserID, FullName = x.Forename + x.Surname }), "UserID", "FullName",
                                     Model.TargetedUser.ManagerUserID), 
                      new { @name = "TargetedUser.ManagerUserID" })

Upvotes: 1

Related Questions