-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 回答