如何在 Blazor 中的字段中渲染 html

问题描述 投票:0回答:1

我有一个用 HTML 保存在数据库中的字段。我正在使用 TinyMCE 作为我的文本编辑器,它正确地将 HTML 标签保存在数据库中。但是,当我渲染该字段时,它仍然显示标签。最初我有这个:

<td>
    @objInv.Notes
</td>

我解决此问题的最新尝试是:

<td>
    @(new HtmlString(objInv.Notes))
</td>

无论哪种方式,它仍然呈现为:

<p>New laptops 09/07/2022 <strong>test</strong></p>

我的愿望是:

新笔记本电脑 09/07/2022 测试

html blazor rendering
1个回答
5
投票

在 Blazor 中,渲染原始 HTML 是使用

MarkupString
类实现的。例如,您可以将原始 HTML 分配给字符串变量,然后在渲染时将其转换为
MarkupString
。或者,您可以直接声明并初始化
MarkupString
字段。

这是一个例子:

@tableTitle

<table class="table table-striped">
    <thead>
        <tr>
            <th>Notes</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>@((MarkupString)myNote)</td>
        </tr>
    </tbody>
</table>

@code {
    string myNote = "<p>New laptops 09/07/2022 <strong>test</strong></p>";
    MarkupString tableTitle = new MarkupString("<h1 style='color: blue;'>Laptop Notes</h1>");
}

输出:

© www.soinside.com 2019 - 2024. All rights reserved.