8

ASP.NETMVCは初めてです。データベースの値から基本的なドロップダウンリストを作成する方法を理解しようとしています。ASP.NET Webフォームでは、次のようなドロップダウンリストを読み込むことができます。

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で同じ種類のことを行うにはどうすればよいですか?ありがとうございました!

4

2 に答える 2

8

モデル

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

于 2010-03-07T17:09:28.987 に答える
2

MVC2では、ビューで使用し、コントローラーで、データベースからのアイテムを含む<%=Html.DropListFor(x => x.MemberName, Model.DropListItems)%>新しいものをDropListItemsに入力します。SelectList

Nerd Dinner-サンプルにはこれが含まれていると思います。MVCを初めて使用する場合は、Nerd Dinnerアプリを実際に試し、作成する必要があります。これは、使用するものを使用しない場合でも、NerdDinnerアプリから多くのことを学ぶためです。 。

于 2010-03-07T16:08:11.683 に答える