我在ASP.NET MVC中使用Razor,并意识到@Html.Raw("<br />")和"<br />"都在html中设置了一个断线,但我想知道它们之间的实际区别是什么?
发布于 2019-11-21 04:39:49
@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/>,而不需要您的干预。您可以将<br/>标记内联地放在.cshtml页面中,它将在.cshtml输出中正确呈现。
使用@Html.Raw(...)的主要副作用是它在编译后的视图中生成额外的代码。原则上,可以优化Raw(...)以生成与标准HTML完全相同的代码,但更有可能的是输出代码将产生3个字符串操作,而不是1来处理代码的该部分。
就我个人而言,我很少使用@Html.Raw(...),因为这样做通常是不合理的。有一次,当Razor在我的一个页面中被一个复杂的条件生成部分搞糊涂时,我只想让它闭上嘴,知道它认为什么是错误,并且几次作为将Razor代码插入页面的简单方法。仅此而已。
https://stackoverflow.com/questions/58967083
复制相似问题