当我运行网站时,我的流派不显示

时间:2021-01-22 04:00:46

标签: c# css asp.net-mvc entity-framework poco

我正在使用 MVC 音乐商店作为指南创建一个在线音乐商店。

https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-4

该指南在类中使用实体框架和种子数据。

当我运行网站并导航到“商店”时,我的音乐类型不会出现。

Website

这是我的流派课程:

public partial class Genre
{
    public int GenreId { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public List<Album> Albums { get; set; }

}

这是我的实体框架数据库上下文:

      public class MusicStoreEntities : DbContext
    {

        public MusicStoreEntities()
            : base("name=MusicStoreEntities")
        {
        }

        public DbSet<Album> Albums { get; set; }
        public DbSet<Genre> Genres { get; set; }
    }
}

这是我的商店控制器:

     public class StoreController : Controller
    {
        MusicStoreEntities storeDB = new MusicStoreEntities();
        //
        // GET: /Store/
        public ActionResult Index()
        {
            var genres = storeDB.Genres.ToList();
            return View(genres);
        }
        //
        // GET: /Store/Browse
        //
        // GET: /Store/Browse?genre=Disco
        public ActionResult Browse(string genre)
        {
            var genreModel = new Genre { Name = genre };
            return View(genreModel);
        }
        //
        // GET: /Store/Details/5
        public ActionResult Details(int id)
        {
            var album = new Album { Title = "Album " + id };
            return View(album);
        }
    }
}

这是我的种子数据:

    public class MusicData : DropCreateDatabaseIfModelChanges<MusicStoreEntities>
    {
        protected override void Seed(MusicStoreEntities context)
        {
            var genres = new List<Genre>
            {
                new Genre { Name = "Rock" },
                new Genre { Name = "Jazz" },
                new Genre { Name = "R&B" },
                new Genre { Name = "Alternative" },
                new Genre { Name = "Reggae" },
                new Genre { Name = "Blues" },
                new Genre { Name = "Latin" },
                new Genre { Name = "Reggae" },
                new Genre { Name = "Pop" },
                new Genre { Name = "Hip Hop" }
            };

            var artists = new List<Artist>
            {
                new Artist { Name = "Arthur Verocai" },
                new Artist { Name = "Free Nationals" },
                new Artist { Name = "Marvin Gaye" },
                new Artist { Name = "Thundercat" },
                new Artist { Name = "Nas" },
                new Artist { Name = "D'Angelo" },
                new Artist { Name = "Bob Marley" },
                new Artist { Name = "Freddie Gibbs" },
                new Artist { Name = "Solange Knowles" },
                new Artist { Name = "Kendrick Lamar" },
                new Artist { Name = "Madvillain" },
                new Artist { Name = "Prince" },
                new Artist { Name = "Hector Lavoe" },
                new Artist { Name = "Wayne Shorter" },
                new Artist { Name = "Muddy Waters" },
                new Artist { Name = "howlin wolf" },
                new Artist { Name = "Jamiroquai" },
                new Artist { Name = "Barrington Levy" },
                new Artist { Name = "Stevie Wonder" },
                new Artist { Name = "Jimi Hendrix" },
                new Artist { Name = "Pink Floyd" },
                new Artist { Name = "Outkast" },
                new Artist { Name = "Jay-Z" },
                new Artist { Name = "The Internet" },
                new Artist { Name = "Lupe Fiasco" },
                new Artist { Name = "Tyler, The Creator " }

            };

            new List<Album>
            {
                new Album { Title = "Arthur Verocai", Genre = genres.Single(g => g.Name == "Latin"), Price = 25.99M, Artist = artists.Single(a => a.Name == "Arthur Verocai"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "No Voo do Urubu", Genre = genres.Single(g => g.Name == "Latin"), Price = 31.99M, Artist = artists.Single(a => a.Name == "Arthur Verocai"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Free Nationals", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Free Nationals"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "I Want You", Genre = genres.Single(g => g.Name == "R&B"), Price = 21.99M, Artist = artists.Single(a => a.Name == "Marvin Gaye"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Let's Get It On", Genre = genres.Single(g => g.Name == "R&B"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Marvin Gaye"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "What's Going On ", Genre = genres.Single(g => g.Name == "R&B"), Price = 11.99M, Artist = artists.Single(a => a.Name == "Marvin Gaye"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "It Is What It Is", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Thundercat"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Drunk", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Thundercat"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "It Was Written", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Nas"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Life Is Good", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Nas"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Brown Sugar", Genre = genres.Single(g => g.Name == "R&B"), Price = 21.99M, Artist = artists.Single(a => a.Name == "D'Angelo"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Voodoo", Genre = genres.Single(g => g.Name == "R&B"), Price = 22.99M, Artist = artists.Single(a => a.Name == "D'Angelo"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Legend", Genre = genres.Single(g => g.Name == "Reggae"), Price = 21.99M, Artist = artists.Single(a => a.Name == "Bob Marley"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Uprising", Genre = genres.Single(g => g.Name == "Reggae"), Price = 21.99M, Artist = artists.Single(a => a.Name == "Bob Marley"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Exodus", Genre = genres.Single(g => g.Name == "Reggae"), Price = 21.99M, Artist = artists.Single(a => a.Name == "Bob Marley"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Bandana", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 8.98M, Artist = artists.Single(a => a.Name == "Freddie Gibbs"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Pinata", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 19.99M, Artist = artists.Single(a => a.Name == "Freddie Gibbs"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Freddie", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 19.99M, Artist = artists.Single(a => a.Name == "Freddie Gibbs"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "A Seat at the Table ", Genre = genres.Single(g => g.Name == "R&B"), Price = 18.99M, Artist = artists.Single(a => a.Name == "Solange Knowles"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "When I Get Home ", Genre = genres.Single(g => g.Name == "R&B"), Price = 19.99M, Artist = artists.Single(a => a.Name == "Solange Knowles"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "To Pimp A Butterfly", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 29.99M, Artist = artists.Single(a => a.Name == "Kendrick Lamar"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Damn", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 29.99M, Artist = artists.Single(a => a.Name == "Kendrick Lamar"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Madvillainy", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Madvillain"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Prince", Genre = genres.Single(g => g.Name == "Pop"), Price = 27.99M, Artist = artists.Single(a => a.Name == "Prince"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "HITNRUN Phase Two", Genre = genres.Single(g => g.Name == "Pop"), Price = 27.99M, Artist = artists.Single(a => a.Name == "Prince"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = " Purple Rain", Genre = genres.Single(g => g.Name == "Pop"), Price = 27.99M, Artist = artists.Single(a => a.Name == "Prince"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Sign O The Times", Genre = genres.Single(g => g.Name == "Pop"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Prince"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "De Ti Dipende", Genre = genres.Single(g => g.Name == "Latin"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Hector Lavoe"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "La Voz", Genre = genres.Single(g => g.Name == "Latin"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Hector Lavoe"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Comedia", Genre = genres.Single(g => g.Name == "Latin"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Hector Lavoe"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Speak No Evil ", Genre = genres.Single(g => g.Name == "Jazz"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Wayne Shorter"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Night Dreamer", Genre = genres.Single(g => g.Name == "Jazz"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Wayne Shorter"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Juju", Genre = genres.Single(g => g.Name == "Jazz"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Wayne Shorter"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Hoochie Coochie Man", Genre = genres.Single(g => g.Name == "Blues"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Muddy Waters"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Muddy Waters At Newport ", Genre = genres.Single(g => g.Name == "Blues"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Muddy Waters"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Moanin In The Moonlight ", Genre = genres.Single(g => g.Name == "Blues"), Price = 16.99M, Artist = artists.Single(a => a.Name == "howlin wolf"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Travelling Without Moving", Genre = genres.Single(g => g.Name == "Pop"), Price = 16.99M, Artist = artists.Single(a => a.Name == "Jamiroquai"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Synkronized", Genre = genres.Single(g => g.Name == "Pop"), Price = 16.99M, Artist = artists.Single(a => a.Name == "Jamiroquai"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Return Of The Space Cowboy", Genre = genres.Single(g => g.Name == "Pop"), Price = 16.99M, Artist = artists.Single(a => a.Name == "Jamiroquai"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Acousticalevy", Genre = genres.Single(g => g.Name == "Reggae"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Barrington Levy"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Here I Come by Barrington Levy", Genre = genres.Single(g => g.Name == "Reggae"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Barrington Levy"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Songs in the Key of Life", Genre = genres.Single(g => g.Name == "R&B"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Stevie Wonder"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Innervisions", Genre = genres.Single(g => g.Name == "R&B"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Stevie Wonder"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Talking Book (Remastered)", Genre = genres.Single(g => g.Name == "R&B"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Stevie Wonder"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Electric Ladyland", Genre = genres.Single(g => g.Name == "Rock"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Jimi Hendrix"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "Band Of Gypsys", Genre = genres.Single(g => g.Name == "Rock"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Jimi Hendrix"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "The Dark Side of the Moon", Genre = genres.Single(g => g.Name == "Rock"), Price = 21.99M, Artist = artists.Single(a => a.Name == "Pink Floyd"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title =  "The Wall", Genre = genres.Single(g => g.Name == "Rock"), Price = 31.99M, Artist = artists.Single(a => a.Name == "Pink Floyd"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Aquemini", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 38.99M, Artist = artists.Single(a => a.Name == "Outkast"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "ATLiens", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 23.99M, Artist = artists.Single(a => a.Name == "Outkast"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "The Blueprint", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 22.99M, Artist = artists.Single(a => a.Name == "Jay-Z"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Feel Good", Genre = genres.Single(g => g.Name == "Alternative"), Price = 22.99M, Artist = artists.Single(a => a.Name == "The Internet"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Ego Death", Genre = genres.Single(g => g.Name == "Alternative"), Price = 22.99M, Artist = artists.Single(a => a.Name == "The Internet"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Lupe Fiasco's Food & Liquor ", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 38.99M, Artist = artists.Single(a => a.Name == "Lupe Fiasco"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
                new Album { Title = "Wolf ", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 38.99M, Artist = artists.Single(a => a.Name == "Tyler, The Creator "), AlbumArtUrl = "/Content/Images/placeholder.gif" },
            }.ForEach(a => context.Albums.Add(a));
        }
    }
}

这是该视图的 Index.cshtml 代码:

@model IEnumerable<WaxLoversOnline.Models.Genre>

@{
    ViewBag.Title = "Store";
}
<h3>Browse Genres</h3>
<p>
    Select from @Model.Count()
    genres:
</p>
<ul>
    @foreach (var genre in Model)
    {
        <li>
            @Html.ActionLink(genre.Name,
"Browse", new { genre = genre.Name })
    </li>
}
</ul>

当我运行程序时,我没有收到任何错误。我对使用 C# 比较陌生。任何帮助都会得到极大的认可。

1 个答案:

答案 0 :(得分:0)

您需要在 System.Data.Entity.Database.SetInitializer(new MusicData()); 中添加 Application_Start(),如下所示。参考https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-4#adding-our-store-catalog-data

protected void Application_Start()
{
    // Add below line
    System.Data.Entity.Database.SetInitializer(new MusicData());
    // Your code
}
相关问题