ASP.NET MVC - Заполните выпадающий список

Я плохо знаком с ASP.NET MVC. Я пытаюсь выяснить, как создают основной выпадающий список из значений в моей базе данных. В веб-формах ASP.NET я знаю, что могу загрузить выпадающий список как это:

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();
  }
}

Как я делаю тот же тип вещи в ASP.NET MVC?Спасибо!

8
задан Leniel Maccaferri 7 February 2012 в 03:32
поделиться

2 ответа

Модель

public class EditSongViewModel
{        
    public int AlbumId { get; set; }
    public string Title { get; set; }                
    public int TrackNumber { get; set; }
    public IEnumerable<SelectListItem> Albums { get; set; }
}

Метод расширения

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()
                   });
}

Получение данных из базы данных

model.Albums = _repository.FindAllAlbums().ToSelectItems(selectedId);

Просмотр

@Html.DropDownList("AlbumId", Model.Albums)

или еще лучше:

@Html.DropDownListFor(model => model.AlbumId, Model.Albums)

Взгляните на это сообщение в блоге, которое все объясняет:

Выпадающие списки и ASP.NET MVC

8
ответ дан 5 December 2019 в 17:36
поделиться

В MVC2 используйте <% = Html.DropListFor (x => x.MemberName, Model.DropListItems)%> в вашем view и в вашем контроллере вы заполняете DropListItems новым SelectList , содержащим элементы из базы данных.

Я считаю, что образец Nerd Dinner включает это, и если вы новичок в MVC, вам действительно стоит пройти и создать приложение Nerd Dinner, потому что вы многому научитесь из него, даже если вы не планируете использовать что они используют.

2
ответ дан 5 December 2019 в 17:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: