大编辑:我已经编辑了我的完整帖子,答案是我在 Von V 和 Johannes 的帮助下提出的,非常感谢你们!!!!
我一直在尝试在我的索引视图中的 foreach 循环内执行一个 foreach 循环,以在手风琴中显示我的产品。让我告诉你我是如何尝试做到这一点的。
这是我的模型:
public class Product
{
    [Key]
    public int ID { get; set; }
    public int CategoryID { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public string Path { get; set; }
    public virtual Category Category { get; set; }
}
public class Category
{
    [Key]
    public int CategoryID { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Product> Products { get; set; }
}
这是一对一的关系,一个产品只有一个类别,但一个类别有很多产品。
在我看来,这是我正在尝试做的事情:
@model IEnumerable<MyPersonalProject.Models.Product>   
    <div id="accordion1" style="text-align:justify">
    @foreach (var category in ViewBag.Categories)
    {
        <h3><u>@category.Name</u></h3>
        <div>
            @foreach (var product in Model)
            {
                if (product.CategoryID == category.CategoryID)
                {
                    <table cellpadding="5" cellspacing"5" style="border:1px solid black; width:100%;background-color:White;">
                        <thead>
                            <tr>
                                <th style="background-color:black; color:white;">
                                    @product.Title  
                                    @if (System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal("/admin", User, "GET"))
                                    {
                                        @Html.Raw(" - ")  
                                        @Html.ActionLink("Edit", "Edit", new { id = product.ID }, new { style = "background-color:black; color:white !important;" })
                                    }
                                </th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td style="background-color:White;">
                                    @product.Description
                                </td>
                            </tr>
                        </tbody>      
                    </table>                       
                }
            }
        </div>
    }  
</div>
我不太确定这是正确的做法,但这几乎就是我想要做的。Foreach 类别,将该类别的所有产品放入手风琴选项卡中。
- 第一类
 - 产品1
 - 产品 3
 - 第 2 类
 - 产品 2
 - 产品 4
 - 第 3 类
 - 产品 5
 
在这里,我将为我的一对一(感谢 Brian P)关系添加我的映射:
public class MyPersonalProjectContext : DbContext
{
    public DbSet<Product> Product { get; set; }
    public DbSet<Category> Category { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        modelBuilder.Entity<Product>();
        modelBuilder.Entity<Category>();
    }
}
我还将添加我的控制器,以便您了解我是如何做到的:
public ActionResult Index()
    {
        ViewBag.Categories = db.Category.OrderBy(c => c.Name).ToList();
        return View(db.Product.Include(c => c.Category).ToList());
    }
大编辑:我已经编辑了我的完整帖子,答案是我在 Von V 和 Johannes 的帮助下提出的,非常感谢你们!!!!