【问题标题】:@Html.Raw("<br />") vs "<br />"@Html.Raw("<br />") 与 "<br />"
【发布时间】:2019-11-21 03:57:30
【问题描述】:

我在 ASP.NET MVC 中使用 Razor 并意识到 @Html.Raw("&lt;br /&gt;")"&lt;br /&gt;" 都在 html 中放置了一个换行符,但想知道它们之间的实际区别是什么?

【问题讨论】:

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


    【解决方案1】:

    @Html.Raw 辅助方法允许您将字符串插入到视图生成的渲染 HTML 中。当您想要插入可能由 Razor 渲染器解释的文本时,它很有用:

    <p>We can use <i>@Html.Raw("@Html.Raw(...)")</i> to force the Razor renderer to ignore things.</p>
    

    另一方面,Razor 已经在很大程度上忽略了有效标签,例如 &lt;br/&gt;,而无需您的干预。您可以在 .cshtml 页面中内嵌&lt;br/&gt; 标记,它会在 HTML 输出中正确呈现。

    使用@Html.Raw(...) 的主要副作用是它会在编译视图中产生额外的代码。原则上,Raw(...) 可以优化为生成与标准 HTML 完全相同的代码,但输出代码更有可能生成 3 个字符串操作而不是 1 个来处理该部分代码。

    我个人很少使用@Html.Raw(...),因为这样做通常没有意义。有一次,当 Razor 对我的一个页面中的一个复杂的条件生成部分感到困惑时,我使用了它,我只是想让它闭上它认为是错误的地狱,并且有几次作为插入 Razor 代码的简单方法成一页。就是这样。

    【讨论】:

      猜你喜欢
      • 2014-01-24
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 2010-12-29
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      相关资源
      最近更新 更多