首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c# .net core TagBuilder它没有显示标签部件

c# .net core TagBuilder它没有显示标签部件
EN

Stack Overflow用户
提问于 2021-09-19 08:51:11
回答 1查看 292关注 0票数 0

我想用tagbuilder将无限类别系统中的表打印到cshtml屏幕上。写了一些。其中有些不是写的。请帮帮我。

c#代码:

代码语言:javascript
复制
public IActionResult Index()
        {
            var tb = new TagBuilder("ul");
            using (SqlDbContext vt = new SqlDbContext())
            {
                
                var Kategori = from i in vt.urunKategorileri
                               where i.urunKategorileriUstId == 0
                               select i;

                foreach (urunKategorileri anamenu in Kategori)
                {
                    tb.InnerHtml.AppendHtml("<li><a href='#'>" + anamenu.urunKategorileriKategoriAdi + "</a>"+ Altkategori(anamenu.urunKategorileriId) + "</li>");
                }

            }
                return View(tb);
        }


        private TagBuilder Altkategori(int id)
        {
             TagBuilder eb = new TagBuilder("ul");
            using (SqlDbContext a = new SqlDbContext())
            {
               
                var say = (from i in a.urunKategorileri
                           where i.urunKategorileriUstId == id
                           select i).Count();
                if (say > 0)
                {
                    TagBuilder ab = new TagBuilder("<ul>");
                    var altKat = from i in a.urunKategorileri
                                 where i.urunKategorileriUstId == id
                                 select i;

                   
                    foreach (urunKategorileri altkategori in altKat)
                    {
                        ab.InnerHtml.AppendHtml("<li><a href='#'>" + altkategori.urunKategorileriKategoriAdi + "</a>"+ Altkategori(altkategori.urunKategorileriId)+ "</li>");
                    }
                  
                    return ab;
                }
            }

            return eb;
        }

cshtml代码:

代码语言:javascript
复制
@model TagBuilder

@{
    ViewData["Title"] = "Home Page";
}

@Model

截图:

控制台输出:

在控制台中,子类别通常应该列在li标记中的"Microsoft.AspNetCore.Mvc.Rendering.TagBuilder“部分中。但这不管用。

EN

回答 1

Stack Overflow用户

发布于 2021-09-22 06:20:34

如果要将TagBuilder.InnerHtml附加到html中,则需要将其转换为字符串:

代码语言:javascript
复制
public IActionResult Index()
        {
            var tb = new TagBuilder("ul");
            using (SqlDbContext vt = new SqlDbContext())
            {

                var Kategori = from i in vt.urunKategorileri
                               where i.urunKategorileriUstId == 0
                               select i;

                foreach (urunKategorileri anamenu in Kategori)
                {
                    string html = "";
                    using (var writer = new System.IO.StringWriter())
                    {
                        Altkategori(anamenu.urunKategorileriId).InnerHtml.WriteTo(writer, HtmlEncoder.Default);
                        html = writer.ToString();
                    }
                    tb.InnerHtml.AppendHtml("<li><a href='#'>" + anamenu.urunKategorileriKategoriAdi + "</a>" + html + "</li>");
                }

            }
            return View(tb);
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69241741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档