C# @Html.Raw(";br/>;)vs"&书信电报;br/>&引用;

C# @Html.Raw(";br/>;)vs"&书信电报;br/>&引用;,c#,html,asp.net,asp.net-mvc,razor,C#,Html,Asp.net,Asp.net Mvc,Razor,我在ASP.NET MVC中使用Razor,并意识到@Html.Raw(“”)和“”都在Html中放了一条换行符,但我想知道它们之间的实际区别是什么?使用@Html.Raw辅助方法可以将字符串插入视图生成的呈现Html中。当您希望插入可能由Razor渲染器解释的文本时,此选项非常有用: <p>We can use <i>@Html.Raw("@Html.Raw(...)")</i> to force the Razor renderer to ignore t

我在ASP.NET MVC中使用Razor,并意识到
@Html.Raw(“
”)和

都在Html中放了一条换行符,但我想知道它们之间的实际区别是什么?

使用
@Html.Raw
辅助方法可以将字符串插入视图生成的呈现Html中。当您希望插入可能由Razor渲染器解释的文本时,此选项非常有用:

<p>We can use <i>@Html.Raw("@Html.Raw(...)")</i> to force the Razor renderer to ignore things.</p>
我们可以使用@Html.Raw(“@Html.Raw(…)”)强制Razor渲染器忽略某些内容

另一方面,Razor在没有您干预的情况下已经基本上忽略了有效的标记,如

。您可以在.cshtml页面内联放置

标记,它将在HTML输出中正确呈现

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

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