#asp.net #asp.net-mvc #asp.net-core
#asp.net #asp.net-mvc #asp.net-core
Вопрос:
Я пытаюсь заставить представление отображать имя категории вместо просто идентификатора.
Вот мой код:
Модели:
public class Category
{
[Key]
public string Cat_ID { get; set; }
public string Cat_Name { get; set; }
}
/////////////////////////////////////////////////////////
public class SubCategory
{
[Key]
public string SCat_ID { get; set; }
public string SCat_Name { get; set; }
[ForeignKey("SCat_Cat")]
public string SCat_Cat { get; set; }
public virtual Category Category { get; set; }
}
Контроллер подкатегории (часть просмотра):
public SubCategoriesController(ApplicationDbContext context)
{
_context = context;
}
// GET: SubCategories
public async Task<IActionResult> Index()
{
return View(await _context.SubCategory.ToListAsync());
}
Код, который должен отображать название категории
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.SCat_Name)
@Html.DisplayFor(modelItem => item.Category.Cat_Name)
</td>
Итак, я пытаюсь заставить эту часть @Html.DisplayFor(modelItem => item.Category.Cat_Name)
отображать название категории. Прямо сейчас я вообще ничего не получаю.
О, и вот запись базы данных.
Ответ №1:
Пришлось изменить это:
public async Task<IActionResult> Index()
{
return View(await _context.SubCategory.ToListAsync());
}
Для этого:
public async Task<IActionResult> Index()
{
return View(await _context.SubCategory.Include(u => u.Category).ToListAsync());
}