더북(TheBook)

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); } } }

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.