我有這樣的代碼;
@((MarkupString)$"<{item.Tagname}> {ChildContent} </{item.TagName}>")
中間的 ChildContent 是一個 RenderFragment 物件,但是輸出如下;
“Microsoft.AspNetCore.Components.RenderFragment”
有沒有辦法讓它以這種方式正常作業?
uj5u.com熱心網友回復:
我猜你正在嘗試做這樣的事情。
該示例使用 aRenderTreeBuilder來構造標記。這相當于為組件撰寫匯編程式,但隨著標記變得復雜,這是唯一明智的方法!
如果你使用這種方法,一個忠告:序列號需要手動編碼,不要使用迭代器。
@this.content
@code {
[Parameter] public RenderFragment? ChildContent { get; set; }
[Parameter] public string TagName { get; set; } = "div";
private RenderFragment content => builder =>
{
builder.OpenElement(0, TagName);
builder.AddContent(1, ChildContent);
builder.CloseComponent();
};
}
或者作為一個完整的組件:
public class ComponentClass : ComponentBase
{
[Parameter] public RenderFragment? ChildContent { get; set; }
[Parameter] public string TagName { get; set; } = "div";
protected override void BuildRenderTree(RenderTreeBuilder builder)
{
builder.OpenElement(0, TagName);
builder.AddContent(1, ChildContent);
builder.CloseComponent();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/483894.html
標籤:asp.net 核心 西装外套 blazor 服务器端 blazor-webassembly
上一篇:如果資料存在,Linq選擇列
下一篇:Newtonsoft.Json.JsonSerializationException:從“Castle.Proxies.SalonProxy”上的“MyEntity”獲取值時出錯
