【问题标题】:Writing HTML code inside variable in ASP.NET C# and Razor在 ASP.NET C# 和 Razor 中的变量内编写 HTML 代码
【发布时间】: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 将 "" 更改为 &amp;gt;&amp;lt;.. 你知道任何解决方案吗?

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

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

【问题讨论】:

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


    【解决方案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 没有问题,很高兴它有帮助 - 如果有帮助,请参阅上面的更新。
    • 这也有效:&lt;span class="hidden" data-state="@(entry.Key)_Title"&gt; 查看haacked.com/archive/2011/01/06/…
    【解决方案2】:

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

    @((MarkupString) yourString)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多