Как добавить выпадающий список MVC для списка<string>
Я пытаюсь добавить Dropdownlist для моего проекта MVC, но безуспешно. Я хотел бы отобразить список клиентов. Я хотел бы, чтобы клиенты отображались и выбранный идентификатор.
Я борюсь с приведением моего списка в selectListItems, Может кто-нибудь, пожалуйста, помогите мне с этим.
контроллер
public ActionResult createNewUser()
{
List<string> Customers = DBH.CustomerBranchGetAll();
var Model = new UserModel
{
Customers = Customers
};
return View(Model);
}
модель
public class UserModel
{
public int CustomerId { get; set; }
public List<string> Customers { get; set; }
public IEnumerable<SelectListItem> SelectCustomers
{
get { return new SelectList(Customers, "Id", "Name"); }
}
}
Посмотреть
<div class="editor-label">
@Html.Label("Choose Your Customer name")
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.CustomerId, Model.SelectCustomers)
@Html.ValidationMessageFor(model => model.Customers)
</div>
2 ответа
Читать SelectList
Ваш Customers
не является объектом, который содержит Id & Name
свойства. В вашем коде это просто список строк.List<string> Customers
Вам нужно определить класс со свойствами Name и Id и использовать его
public class Customer{
public string Name{get;set;}
public int Id {get;set;}
}
Затем подготовьте объект клиента с назначенными свойствами Id и Name.
List<Customers> customers = DBH.CustomerBranchGetAll();
var Model = new UserModel
{
Customers = customers
};
Ввиду
@Html.DropDownListFor(model => model.CustomerId,
new SelectList(Model.Customers,"Id","Name"))
SelectList
имеет конструктор, который принимает IEnumerable
.. так что вам просто нужно сделать это:
@Html.DropDownListFor(model => model.CustomerId, new SelectList(Model.Customers))
Вы можете удалить SelectCustomers
собственность целиком