在 ASP.NET C# 和 Razor 中的变量内编写 HTML 代码
Posted
技术标签:
【中文标题】在 ASP.NET C# 和 Razor 中的变量内编写 HTML 代码【英文标题】:Writing HTML code inside variable in ASP.NET C# and Razor 【发布时间】:2012-10-09 11:20:29 【问题描述】:我是 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;
和 &lt;
.. 你知道任何解决方案吗?
我还有一个问题,我可以在 PHP 之类的引号内插入变量吗?
echo "<ul>$list</ul>";
【问题讨论】:
【参考方案1】:如您所见,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>
【讨论】:
谢谢老兄,它有效。另一个问题?我可以在php之类的引号内写一个变量吗?我会在 9 分钟内选出正确答案,再次感谢。 @Carasuman 没有问题,很高兴它有帮助 - 如果有帮助,请参阅上面的更新。 这也有效:<span class="hidden" data-state="@(entry.Key)_Title">
查看haacked.com/archive/2011/01/06/…【参考方案2】:
对于 ASP.NET Core 6.0,您可以像这样使用 MarkupString:
@((MarkupString) yourString)
【讨论】:
以上是关于在 ASP.NET C# 和 Razor 中的变量内编写 HTML 代码的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Web Pages - 添加 Razor 代码