ASP.NET MVC problem med att hämta specifika produkter ifrån en kategori
Håller just nu på att försöka skapa en webbutik men har fastnat när jag ska hämta alla produkter som tillhör en viss kategori.
Mitt felmeddelande är att sekvensen innehåller inga element på var categoryModel = db.Category.Include("Product")
Vad tror ni att felet kan vara, vad har jag missat? Har just nu inga problem med att få fram alla kategorier som länkar och kan göra CRUD på mina produkter men så fort jag trycker på en kategorilänk så kraschar applikationen.
Säg till om ni vill se något annat än det jag har skrivit in här.
StoreController.cs
public ActionResult Browse(string category)
{
var categoryModel = db.Category.Include("Product")
.Single(c => c.CategoryType == category);
return View(categoryModel);
}
Browse.cshtml
@model OnlineStore.Models.Category
@{
ViewBag.Title = "Browse";
}
<h2>Browsing Category: @Model.CategoryType</h2>
<ul>
@foreach (var product in Model.Product)
{
<li>
@product.Title
</li>
}
</ul>
Index.cshtml
@model IEnumerable<OnlineStore.Models.Category>
@{
ViewBag.Title = "Index";
}
<h2>Store</h2>
<ul>
@foreach (var category in Model)
{
<li>
@Html.ActionLink(category.CategoryType, "Browse", new { category.CategoryType })
</li>
}
</ul>
Product.cs
namespace OnlineStore.Models
{
[MetadataType(typeof(Metadata_Product))]
public partial class Product
{
public class Metadata_Product
{
public int ProductID { get; set; }
public int CategoryID { get; set; }
public int MakerID { get; set; }
[Display(Name="Namn")]
public string Title { get; set; }
[Display(Name = "Pris")]
public decimal Price { get; set; }
[Display(Name = "Beskrivning")]
public string Description { get; set; }
public virtual Category Category { get; set; }
public virtual Manufacturer Manufacturer { get; set; }
}
}
}
Category.cs
namespace OnlineStore.Models
{
[MetadataType(typeof(Metadata_Category))]
public partial class Category
{
public class Metadata_Category
{
public int CategoryID { get; set; }
[Display(Name = "Kategori")]
public string CategoryType { get; set; }
public virtual ICollection<Product> Product { get; set; }
}
}
}
CPU: AMD Ryzen 7 7800X3D
Ram: Kingston 32GB DDR5 6000MHz
GPU: XFX Radeon RX 6800 XT MERC 319
Operativsystem: Windows 11