ребята. Что мне нужно, так это просто просмотреть подробную информацию о моей статье в моем View ArticleDetail. Все работает, кроме тегов. У меня есть отношения многие ко многим между статьями и тегами:
public class Article
{
public int Id {get; set; }
public string Name { get; set; }
public string ShortDescription { get; set; }
public string Description { get; set; }
public byte[] HeroImage { get; set; }
public DateTime Date { get; set; }
public string Category { get; set; }
public virtual List<ArticleTag> ArticlesTags { get; set; }
public Article()
{
ArticlesTags = new List<ArticleTag>();
}
}
public class Tag
{
public int Id { get; set; }
public string Name { get; set; }
public virtual List<ArticleTag> ArticlesTags { get; set; }
public Tag()
{
ArticlesTags = new List<ArticleTag>();
}
}
public class ArticleTag
{
public int ArticleId { get; set; }
public Article Article { get; set; }
public int TagId { get; set; }
public Tag Tag { get; set; }
}
Мой ArticleDetail:
@model MyBlog.Models.Article
@{
ViewData["Title"] = "Article Detail";
}
<div>
<dl class="dl-horizontal">
<dt></dt>
<dd>
@Html.DisplayFor(model => model.Name)
</dd>
<dt></dt>
<dd>
@Html.DisplayFor(model => model.Description)
</dd>
<dt></dt>
<dd>
@foreach (var t in Model.ArticlesTags)
{@t.Tag.Name} //?? is it right?
</dd>
<dt></dt>
<dd>
@Html.DisplayFor(model => model.Category)
</dd>
</dl>
</div>
Но как мне изменить мой HomeController (теперь у меня есть только один для просмотраподробности о статье без тегов)?
[HttpGet]
[ActionName("ArticleDetail")]
public async Task<IActionResult> ArticleDetail(int? id)
{
if (id != null)
{
Article article = await db.Articles.FirstOrDefaultAsync(i => i.Id == id);
if (article != null)
return View(article);
}
return NotFound();
}