【发布时间】:2019-11-21 03:57:30
【问题描述】:
我在 ASP.NET MVC 中使用 Razor 并意识到 @Html.Raw("<br />") 和 "<br />" 都在 html 中放置了一个换行符,但想知道它们之间的实际区别是什么?
【问题讨论】:
标签: c# html asp.net asp.net-mvc razor
我在 ASP.NET MVC 中使用 Razor 并意识到 @Html.Raw("<br />") 和 "<br />" 都在 html 中放置了一个换行符,但想知道它们之间的实际区别是什么?
【问题讨论】:
标签: c# html asp.net asp.net-mvc razor
@Html.Raw 辅助方法允许您将字符串插入到视图生成的渲染 HTML 中。当您想要插入可能由 Razor 渲染器解释的文本时,它很有用:
<p>We can use <i>@Html.Raw("@Html.Raw(...)")</i> to force the Razor renderer to ignore things.</p>
另一方面,Razor 已经在很大程度上忽略了有效标签,例如 <br/>,而无需您的干预。您可以在 .cshtml 页面中内嵌<br/> 标记,它会在 HTML 输出中正确呈现。
使用@Html.Raw(...) 的主要副作用是它会在编译视图中产生额外的代码。原则上,Raw(...) 可以优化为生成与标准 HTML 完全相同的代码,但输出代码更有可能生成 3 个字符串操作而不是 1 个来处理该部分代码。
我个人很少使用@Html.Raw(...),因为这样做通常没有意义。有一次,当 Razor 对我的一个页面中的一个复杂的条件生成部分感到困惑时,我使用了它,我只是想让它闭上它认为是错误的地狱,并且有几次作为插入 Razor 代码的简单方法成一页。就是这样。
【讨论】: