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

Car*_*man 19 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>
Run Code Online (Sandbox Code Playgroud)

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

string List = "<li>My List</li>";
<ul>@List</ul>
Run Code Online (Sandbox Code Playgroud)

但ASP改变了"<"和">" &gt;&lt;..你知道任何解决方案吗?

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

echo "<ul>{$list}</ul>";
Run Code Online (Sandbox Code Playgroud)

McG*_*gle 34

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

<ul>@Html.Raw(List)</ul>
Run Code Online (Sandbox Code Playgroud)

编辑

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

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

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

<div>hello @someVariable</div>
Run Code Online (Sandbox Code Playgroud)