c# - c# .net core TagBuilder 不显示标签部分
问题描述
我想使用 tagbuilder 将无限类别系统中的表格打印到我的 cshtml 屏幕。写了一些。有的没写。请帮我。
c#代码:
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代码:
@model TagBuilder
@{
ViewData["Title"] = "Home Page";
}
@Model
截屏:
控制台输出:
在控制台中,子类别通常应列在 li 标签内的“Microsoft.AspNetCore.Mvc.Rendering.TagBuilder”部分中。但它不起作用。
解决方案
TagBuilder.InnerHtml
如果要将其附加到 html,则需要转换为字符串:
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);
}
推荐阅读
- python - 如何将字符添加到未知字符串长度?
- java - 为什么我不能以正常方式调用已实现的接口方法?
- python - 我怎样才能一遍又一遍地问一个问题,直到用户猜出数字
- python - 有没有办法从 tkinter gui 调用海龟屏幕?
- reactjs - 有什么方法可以将完整的网页呈现为 React 应用程序中的组件?
- angular - node_modules/@angular/material/card/typings/card-module.d.ts(12,55) 中的错误
- javascript - 单击时复制文本并随后显示小弹出窗口 - 扩展代码
- firebase - 在 web javascript 中为多个数据库初始化时,firebase 实时数据库实例之一未经过身份验证
- python - 如何将不带引号的字符串转换为python数组?
- c - 是否可以将函数参数存储在指向函数的指针中?