ASP.NET MVC - Populate a drop down list

前端 未结 2 1161
执念已碎
执念已碎 2020-12-31 20:35

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 lik

相关标签:
2条回答
  • 2020-12-31 21:00

    In MVC2, use <%=Html.DropListFor(x => x.MemberName, Model.DropListItems)%> in your view and in your controller you populate DropListItems with a new SelectList containing the items from the database.

    I belive that the Nerd Dinner-sample includes this, and if you're new to MVC you should really really go through and create the Nerd Dinner app, because you learn so much from it, even if you plan to not use what they use.

    0 讨论(0)
  • 2020-12-31 21:20

    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

    0 讨论(0)
提交回复
热议问题