Search code examples
c#asp.net-mvcmodel-view-controllermodeldropdownlistfor

Drop Down List into view (MVC)


I have Controller:

public IActionResult Show()
{
 var cars = new List<Cars>()
 {
  new Cars {Name = "BMW", Id = 1},
  new Cars {Name = "KIA", Id= 2},
  new Cars {Name = "FORD", ID = 3},
 };

 var vm = new MyModel
 {
  Cars = cars;
 }

 ...return View(vm)
}

and View, where I want to use DropDownListFor to display all Cars.Name:

@model MyModel;
<div>
 ....
 <div class="col-md-5">
  @Html.DropDownListFor(x => Model.Cars, new SelectList(Name, "Name", "Text"), htmlAttributes: new { @class = "form-control" })
 /div>
 
<div>

but something I did wrong.


Solution

  • See example below:

    public IActionResult Show()
    {
        var cars = new List<Car>()
             {
              new Car {Name = "BMW", Id = 1},
              new Car {Name = "KIA", Id= 2},
              new Car {Name = "FORD", Id = 3},
             };
    
        var vm = new MyModel { Cars = cars };
        return View(vm);
    }
    

    Show.cshtml:

    @model Models.MyModel
    
    @Html.DropDownListFor(m => Model.Cars.GetEnumerator().Current,
        Model.Cars.Select(c =>
        {
            return new SelectListItem() { Text = c.Name,
                Value = c.Id.ToString()
            };
        }),
        null, new { @class = "form-control dropdown-list" })