如何使存储为 C# 字符串的 HTML 元素正确显示?

Posted

技术标签:

【中文标题】如何使存储为 C# 字符串的 HTML 元素正确显示?【英文标题】:How can I make HTML elements stored as C# strings display properly? 【发布时间】:2021-03-05 15:32:22 【问题描述】:

我有一些存储在 C# 字符串中的 html 代码。我希望它显示为文本而不是 HTML 代码。下面是一些示例代码:

@page "/page"
@using System
@using System.Net

@
    var link = "<a href='https://apple.com'>Link</a>"


<h1>Page</h1>

@WebUtility.HtmlDecode(link)

我正在使用 Blazor(不是 MVC),并且我尝试使用 this 问题中推荐的 HtmlDecode 方法。我希望链接显示如下:

link

但它显示为:

<a href="https://apple.com">link</a>

我对其他 HTML 元素也有同样的问题。有谁知道我怎样才能让它正确显示?

【问题讨论】:

@((MarkupString)link) 【参考方案1】:

使用MarkupString

@((MarkupString)link)

@
    string link = "<a href='https://apple.com'>Link</a>"

【讨论】:

【参考方案2】:

如果你保存了一个 Html.然后尝试使用@variableName,而不是使用 HTML 助手或 Razor 助手

@page "/page"
@using System
@using System.Net

@
    var link = "<a href='https://apple.com'>Link</a>"


<h1>Page</h1>

@link

【讨论】:

以上是关于如何使存储为 C# 字符串的 HTML 元素正确显示?的主要内容,如果未能解决你的问题,请参考以下文章

c#如何使用显式地使用迭代器遍历LinkedList,并在遍历的同时删除某些元素

如何在 C# 中解码 HTML 字符?

如何在 C# 中将字符串解码为 XML 字符串

在 C# 中根据样式获取 HTML 元素

Orderby() 没有正确排序数字 c#

MailMessage c# - 如何使其成为 HTML 并添加图像等?