在ASP.NET C#和Razor中的变量中编写HTML代码

时间:2012-10-18 21:38:45

标签: c# asp.net asp.net-mvc razor

我是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改变了“&lt;”和“&gt;”到&gt;&lt; ..您知道任何解决方案吗?

我有另一个问题,我可以在像PHP这样的引号中插入变量吗?

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

1 个答案:

答案 0 :(得分:30)

正如您所注意到的,默认情况下,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>