我是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;”到>
和<
..您知道任何解决方案吗?
我有另一个问题,我可以在像PHP这样的引号中插入变量吗?
echo "<ul>{$list}</ul>";
答案 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>