26

我是 ASP.NET C# 的新手,我遇到了一些问题。

在 PHP 中,我可以将 HTML 代码存储在变量中,例如:

$list = "<li>My List</li>";
echo "<ul>{$list}</ul>"; // write <ul><li>My List</li></ul>

我在 ASP.NET 和 Razor 中试过这个

string List = "<li>My List</li>";
<ul>@List</ul>

但是 ASP 将 "<" 和 ">" 更改为&gt;and &lt;.. 你知道任何解决方案吗?

我还有一个问题,我可以在 PHP 之类的引号内插入变量吗?

echo "<ul>{$list}</ul>";
4

2 回答 2

44

正如您所注意到的,Razor 引擎 HTML 默认对字符串进行编码。要避免这种行为,只需使用Html.Raw()

<ul>@Html.Raw(List)</ul>

编辑

要在字符串中呈现变量,我想您可以使用string.Format

@{ var someVariable = "world"; }
@string.Format("<div>hello {0}</div>", someVariable)

虽然这看起来有点矫枉过正(至少在这个例子中),但你可以写:

<div>hello @someVariable</div>
于 2012-10-18T21:40:16.250 回答
0

对于 ASP.NET Core 6.0,您可以像这样使用MarkupString

@((MarkupString) yourString)
于 2022-01-19T06:35:45.713 回答