首页 > 解决方案 > 无法转换类别名称而不是类别 ID

问题描述

我正在尝试在 asp.net core 2.2 中构建类别明智的子类别,我成功地做到了。但我想显示类别名称而不是类别 ID。这是我的代码:

索引.cshtml

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Id)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.SubCategoryName)
        </th>
        <th>
           Category Name
        </th>

        <th></th>
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Id)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.SubCategoryName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CategoryID)
            </td>

            <td>
                <a href="javascript:void(0);" class="anchorDetail text-danger" data-id="@item.Id">  <i class="fas fa-trash"></i></a>
            </td>
        </tr>
    }

</table>

当我使用@Html.DisplayFor(modelItem => item.Category.CategoryName)而不是@Html.DisplayFor(modelItem => item.CategoryID)then 它没有显示任何内容。

控制器

public class SubCategoryController : Controller
{
    private ApplicationDbContext _db;

    public SubCategoryController(ApplicationDbContext db)
    {
        _db = db;
    }

    public IActionResult Index()
    {
        return View(_db.SubCategory.ToList());
    }
}

这是我的输出: 在此处输入图像描述

我不明白我如何显示类别名称而不是 ID。我是初学者。请帮忙。

标签: c#asp.net-coreasp.net-core-mvc

解决方案


使用 _db.SubCategory.Include(x => x.Category).ToList()而不是_db.SubCategory.ToList()then 它按预期工作。


推荐阅读