5. 홈페이지에서 게시판을 요약해서 보여줄 때 사용할 기능을 태그 헬퍼로 구현하자. TagHelpers 폴더에 DotNetNoteMainSummaryTagHelper.cs라는 이름으로 클래스 파일(태그 헬퍼)을 만들고, 다음과 같이 코드를 작성한다. 이 또한 전체 코드를 다 작성하는 것을 기준으로 한다.
▼ /TagHelpers/DotNetNoteMainSummaryTagHelper.cs
using DotNetNote.Models;
using Microsoft.AspNetCore.Razor.TagHelpers;
namespace DotNetNote.TagHelpers
{
[HtmlTargetElement(“dnn-main-summary”)]
public class DotNetNoteMainSummaryTagHelper : TagHelper
{
private readonly INoteRepository _repository;
/// <summary>
/// 게시판 카테고리: Notice, Free, Data, Qna, …
/// </summary>
public string Category { get; set; }
public DotNetNoteMainSummaryTagHelper(INoteRepository repository)
{
_repository = repository;
}
public override void Process(
TagHelperContext context, TagHelperOutput output)
{
output.TagName = “div”;
string s = ””;
var list = _repository.GetNoteSummaryByCategory(Category);
foreach (var l in list)
{
s += $“<div class=‘post_item’><div class=‘post_item_text’>“
+ $“<span class=‘post_date’>“
+ l.PostDate.ToString(“yyyy-MM-dd”)
+ “</span><span class=‘post_title’>“
+ “<a href = ‘/DotNetNote/Details/” + l.Id + ”’>“
+ Dul.StringLibrary.CutStringUnicode(l.Title, 33)
+ “</a></span></div></div>“;
}
output.Content.AppendHtml(s);
}
}
}