В веб-приложении ASP.NET Core 2.2 Razor Pages, использующем Entity Framework, я хотел бы иметь страницу Index, которая отображает заголовки новостных статей в списке с количеством комментариев под ними.При нажатии на заголовки открывается страница сведений, на которой внизу отображаются название, текст статьи и комментарии.Так что сейчас я пытаюсь достичь с помощью Razor Pages очень простой страницы, похожей на Hacker News.Однако я не могу понять, как правильно назначать комментарии к статьям и отображать количество комментариев на странице индекса.
Я создал такую модель:
namespace Teszt01.Models
{
public class Comment
{
public int ID { get; set; }
public string CommentText { get; set; }
}
}
namespace Teszt01.Models
{
public class Article
{
public int ID { get; set; }
public string Title { get; set; }
public string ArticleText { get; set; }
public List<Comment> Comments { get; set; }
}
}
Я решил использовать List <>, но я не уверен, что это нормально, но после просмотра документов Microsoft, переполнения стека и поиска в Google, я не смог найти лучшего способа.После этого я использовал scaffolding и попытался отредактировать страницу Index, чтобы отобразить количество комментариев, без удачи:
@page
@model Teszt01.Pages.Articles.IndexModel
@{
ViewData["Title"] = "News feed";
}
<table class="table">
<tbody>
@foreach (var item in Model.Article) {
<tr>
<td>
<a asp-page="./Details" asp-route-id="@item.ID">@Html.DisplayFor(modelItem => item.Title)</a>
@* trying to display the number of comments: *@
<p>@item.Comments.Count(modelItem => item.Comments)</p>
</td>
</tr>
}
</tbody>
</table>
Это не работает, ничего не отображается под заголовками статей.В процессе проб и ошибок я попытался изменить строку, которая должна отображать количество комментариев, но это тоже не помогло, и у меня закончились идеи.
Я не трогал контроллер(пока), вот как это выглядит:
namespace Teszt01.Pages.Articles
{
public class IndexModel : PageModel
{
private readonly Teszt01.Models.Teszt01Context _context;
public IndexModel(Teszt01.Models.Teszt01Context context)
{
_context = context;
}
public IList<Article> Article { get;set; }
public async Task OnGetAsync()
{
Article = await _context.Article.ToListAsync();
}
}
}
Интересно, правильная ли модель, которую я использую, и если да, то как отобразить количество комментариев на странице индекса и правильно ли добавить новыекомментарии к статьям на странице с подробностями.