c# - 无法转换类别名称而不是类别 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。我是初学者。请帮忙。
解决方案
使用 _db.SubCategory.Include(x => x.Category).ToList()
而不是_db.SubCategory.ToList()
then 它按预期工作。
推荐阅读
- ibm-mq - 尝试访问在 docker (ibmcom/mq) 中运行的 MQ 时出现 Websphere MQ Explorer (AMQ4036) 错误
- reactjs - Material-UI 将 React 中的单词大写
- android - RxJava2 - 如何知道所有 concatMapSingle 操作何时完成迭代 Observable
- python - Python docx - AttributeError:'bytes'对象没有属性'seek'
- python-3.x - 类型警告 Pycharm
- jquery - row().child() 在 DataTables 中添加未指定的 HTML
- javascript - 如何在主线程和 Web Worker 之间共享 pouchDB
- php - 值未存储在数据库中
- spring - 当我们将库(业务逻辑)加载到 Spring Boot 框架中时,应用程序是否会过载?
- java - 如何确保休眠 5 在与共享主键的一对一关系中保持正确的顺序