Miranda
Miranda

Reputation: 259

concatenate FirstName and LastName in a DropDownListFor()

How to concatenate FirstName and LastName for a DropDownListFor(), what i am trying is not working here is my code.

View Model

public class ViewModelUser
    {
     public SelectList User { get; set; }
        [Required]
        public string SelectedUID { get; set; }
    }

Controller

 public ActionResult GiveReview()
        {
            ViewModelUser viewModelUser = new ViewModelUser();
            viewModelUser.User = new SelectList(dbContext.Users.Where(u => u.Deleted != true).Select(us => new { us.FirstName, us.LastName, us.UID }), "UID", "FirstName" + "LastName");
            return View(viewModelUser );
        }

View

@model WebApplication22.ViewModels.ViewModelUser
@using (Html.BeginForm("GiveReview", "ProvideReview", FormMethod.Post, new { Id = "ratingsForm" }))
{
    @Html.AntiForgeryToken()
                <div class="form-group">
                    <label class="profile-name">Select User</label>
                    @Html.DropDownListFor(m => m.SelectedUID, (IEnumerable<SelectListItem>)Model.User, "-Select User-", new { @class = "form-control" })
                </div>        
                <button type="submit" class="btn btn btn-primary">
                    Submit
                </button>           
}

any help will be appreciated.

Upvotes: 0

Views: 2669

Answers (1)

user3559349
user3559349

Reputation:

You need to concatenate the values in the Select clause

viewModelUser.User = new SelectList(dbContext.Users
    .Where(u => u.Deleted != true).ToList()
    .Select(u => new { FullName = String.Format("{0} {1}", u.FirstName, u.LastName), UID = u.UID }),
    "UID", "FullName");

Upvotes: 2

Related Questions