C#-MVC-如何基于一个外键列出多个条目

问题描述 投票:0回答:1

这是我的第一篇文章,对于我的意识不足,我深表歉意。

我正在尝试根据所选的类别ID选择链接到该类别的许多项目。我知道我需要以某种方式利用模型中创建的列表,但不确定如何。

换句话说,我想根据在站点上选择的类别,在“详细信息”类别中列出菜单项。

MenuCategory Model

public class MenuCategory
{
    public int MenuCategoryId
    {
        get;
        set;
    }
    public string Name
    {
        get;
        set;
    }     
    public List<MenuItem> MenuItems
    {
        get;
        set;
    }
}

MenuItem Model

public class MenuItem
{
    public int MenuItemId
    {
        get;
        set;
    }
    public string Name
    {
        get;
        set;
    }
    public string Image
    {
        get;
        set;
    }

    [ForeignKey("MenuCategory")]
    public int MenuCategoryId
    {
        get;
        set;
    }
    public MenuCategory MenuCategory
    {
        get;
        set;
    }        
}

MenuCategory查看索引

        <thead>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.Name)
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody>
@foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Name)
            </td>
            <td>

                <a asp-controller="MenuCategories" asp-action="Details" asp-route-id="@item.MenuCategoryId">
                Details
                </a> 

            </td>
        </tr>
}
    </tbody>

MenuCategory详细信息视图

@model Farbucks.Models.MenuCategory

@{
    ViewData["Title"] = "Details";
}

<h2>Details</h2>

<div>
    <h4>MenuCategory</h4>
    <hr />
    <dl class="dl-horizontal">
        <dt>
            @Html.DisplayNameFor(model => model.Name)
        </dt>

    </dl>
</div>  

<div>
    <a asp-action="Index">Back to List</a>
</div>
c# database list foreign-keys
1个回答
0
投票

MenuCategory Details View]中,您可以使用Lazy loading in entity]获取MenuItem的列表>

© www.soinside.com 2019 - 2024. All rights reserved.