如何在If语句中包含HTML

saz*_*azr 5 c# asp.net-mvc razor

为什么当我在C#语句中有某些HTML时,Razor会抱怨无效的表达式和术语?

我该如何解决这个问题?

例如; 在我的_layout.cshtml中:

@if (Team.Id == ViewBag.TeamId)
{
    </div>
    <div class="row">
    &nbsp;
}
Run Code Online (Sandbox Code Playgroud)

Row*_*man 9

Razor实际上试图理解你的HTML.不幸的是,它不能高度智能化并且能够识别表达式之外的动态代码或代码.

以来

</div>
<div>
Run Code Online (Sandbox Code Playgroud)

它是无效的HTML,它抱怨.

您可以通过使用来避免此问题 @:

这迫使剃刀绕过其"HTML识别",并简单地打印你要求的任何东西.

例如

@if (Team.Id == ViewBag.TeamId)
{
    @:</div>
    @:<div class="row">
    @:&nbsp;
}
Run Code Online (Sandbox Code Playgroud)