• 1402/03/08

استفاده از tag helper برای تولید Breadcrumb :

سلام خسته نباشید، من برای تولید breadcrumop بالای همه سایتم یه تگ هلپر ساختم که کد html رو تولید می کنه

ورودیش یک دیکشنری هست، پارامتر اول دیکشنری میشه متن نمایشی و بعدش لینک

به این صورت

<Breadcrumb breads="@(new Dictionary<string, string>(){
                        {"گروه‌های گرافیک","post-groups"},
                        {"‌آرتورکها",string.Empty}
                    })"></Breadcrumb>

قسمت آخر هم بدون لینک میشه و اصطلاحا اکتیو هست.

public sealed class MyBreadcrumbTagHelper : TagHelper
    {
        public Dictionary<string, string> Breads { get; set; }
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            output.TagName = null;
            //output.TagMode = TagMode.StartTagAndEndTag;

            var sb =  new StringBuilder().Append("<ul class=\"post-section breadcrumb bolder\"><li><i class=\"ic-location\"></i><a title=\"کپل آرت | گرافیک، برنامه نویسی و خلاقیت\" href=\"/\">کپل آرت</a></li>");

            foreach (var bread in Breads.Take(Breads.Count - 1))
            {
                 sb.Append($"<li><a title=\"{bread.Key}\" href=\"/{bread.Value}\">{bread.Key}</a></li>");
            }

            sb.Append($"<li>{Breads.Last().Key}</li>");
            output.PreContent.SetHtmlContent(sb.Append("</ul>").ToString());
        }
    }

نیتجه :

می خواستم یپرسم سایت تاپلرن یا سایت های دیگه هم همینکارو میکنن و روش اصولی هست یا خیر؟ سپاس

 

  • 1402/03/09
  • ساعت 10:45

سلام دوست من وقتتون بخیر

روشی که استفاده کرده اید روش خوب و جالبی است

روش پیاده سازی bread crumb متفاوت است

با تشکر از شما