【问题标题】:Output plain html between @ tag in Asp.Net MVC在 Asp.Net MVC 中的 @ 标记之间输出纯 html
【发布时间】:2017-05-22 08:58:31
【问题描述】:

如果我在 cshtml 文件中有 if 语句:

<div>
    @if (true)
    {
        @Html.Raw("(True)")
    }
</div>

如何将"(True)" 打印到html?目前我需要使用不安全的Html.Raw,还有其他更安全的方法吗?

编辑:删除了 html 标签。

【问题讨论】:

  • @if (true) { &lt;strong&gt;True&lt;/strong&gt; } 有什么问题。为什么你认为它不安全?
  • &lt;strong&gt;True&lt;/strong&gt; 就够了。 Html.Raw 通常用于解码从视图模型中的某些属性返回的 HTML 字符串以影响视图页面。
  • @StephenMuecke 假设我不使用任何 html 标签,如何安全地输出字符串?例如(True) 字符串。
  • (true)
  • @if (true) { @:(True) }

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


【解决方案1】:

Razor 的 @: 和语法可用于您希望避免在代码容器块中使用 HTML 元素并且需要更明确地表示内容区域的场景。

官方来源:https://weblogs.asp.net/scottgu/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax

希望对您有所帮助,请告诉我您的想法或反馈

谢谢 卡提克

【讨论】:

    【解决方案2】:

    我不同意您对 html.raw 的安全评估,但您可以使用它作为替代方案:

        @if(true)
                {
                    <text> (True) </text>
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多