ASP.NET MVC - Populate a drop down list
asp.net-mvc, c#, drop-down-menu, populate
Solution
Model
public class EditSongViewModel
{
public int AlbumId { get; set; }
public string Title { get; set; }
public int TrackNumber { get; set; }
public IEnumerable<SelectListItem> Albums { get; set; }
}
Extension method
public static IEnumerable<SelectListItem> ToSelectListItems(
this IEnumerable<Album> albums, int selectedId)
{
return
albums.OrderBy(album => album.Name)
.Select(album =>
new SelectListItem
{
Selected = (album.ID == selectedId),
Text = album.Name,
Value = album.ID.ToString()
});
}
Getting data from database
model.Albums = _repository.FindAllAlbums().ToSelectItems(selectedId);
View
@Html.DropDownList("AlbumId", Model.Albums)
or better yet:
@Html.DropDownListFor(model => model.AlbumId, Model.Albums)
Take a look at this blog post that explains it all:
Drop-down Lists and ASP.NET MVC
Problem
I'm new to ASP.NET MVC. I'm trying to figure out how create a basic drop down list from values in my database. In ASP.NET web forms, I know I can load a drop down list like this: Page.aspx ``` <asp:DropDownList ID="myDropDownList" runat="server" DataTextField="FullName" DataValueField="ID" OnLoad="myDropDownList_Load" /> ``` Page.aspx.cs ``` void myDropDownList_Load(object sender, EventArgs e) { if (Page.IsPostBack == false) { List<Person> people = GetPeopleFromDatabase(); myDropDownList.DataSource = people; myDropDownList.DataBind(); } } ``` How do I do the same type of thing in ASP.NET MVC? Thank you!