-1

インデックスページのリストにテーブルにシードされたデータがあります。これは、アルバムがエンティティフレームワークを使用して作成するためのモデルです。これはすべてModel.csです

public enum genre { Rock=1, Pop=2 }

public class Album
{
    public int AlbumID { get; set; }
    public string AlbumName { get; set; }
    public string AlbumArtist { get; set; }
    public genre AlbumGenre { get; set; }
    public Album()
    {
        GenreList = new List<SelectListItem>();
    }
    public IEnumerable<SelectListItem> GenreList { get; set; } 
    public List<Artist> Artists { get; set; }  
}

コントローラーには、ドロップダウン リストの次のコードがあります。model最後にコードの下にレッドラインが表示されますreturn View(model);が、ここで実行すると、これが答えとして指定されません。

public ActionResult Index()
{
    Album model = new Album();
    IEnumerable<genre> genres = Enum.GetValues(typeof (genre)).Cast<genre>();
    model.GenreList = from action in genres
                      select new SelectListItem
                      {
                          Text = action.ToString(),
                          Value = (action.ToString())
                      };
    return View(model);
}

私のインデックスページは、エラーが表示される場所です。 @Html.DropDownListFor(model => model.AlbumID, model.GenreList)エラーが発生する行でありAlbumIdGenreList

@model IEnumerable<revision.Models.Album>
@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
    @Html.ActionLink("Create WOW", "Create"
</p>
@Html.DropDownListFor(model => model.AlbumID, Model.GenreList)
4

1 に答える 1

-1

列挙型は、MVC 5.1 からの Razor ビューでサポートされています。以前のバージョンの mvc を使用しているかどうかを確認してください。さらに、MVC 5.1 Razor DisplayFor が Enum DisplayName で動作しないことも役立ちます。

于 2015-01-15T08:10:28.200 に答える