@ Html.Raw(“ <br />”)vs“ <br />”

时间:2019-11-21 03:57:30

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

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

1 个答案:

答案 0 :(得分:0)

@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代码的简单方法进入页面。就是这样。