我在 MVC 中使用 Razor ASP.NET 并意识到@Html.Raw("<br />")
和"<br />"
都在 html 中放置了分隔线,但想知道它们之间的实际区别是什么?
@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 代码插入页面的简单方法。 仅此而已。