无法弄清楚mvc中我的枚举下拉列表有什么问题

时间:2015-01-15 01:06:26

标签: asp.net-mvc-4 model enums html.dropdownlistfor selectlistitem

我将数据播种到索引页面上的列表中的表格中,这是专辑使用实体框架工作创建它的模型,这是所有的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)

1 个答案:

答案 0 :(得分:-1)

MVC 5.1的Razor视图支持枚举。检查您是否使用任何以前版本的mvc。此外,MVC 5.1 Razor DisplayFor not working with Enum DisplayName这也可以帮助您。