爲什麼當我在C#語句中使用某些HTML時,Razor會抱怨無效的表達式和術語?如何在HTML語句中包含If語句
我該如何解決這個問題?
例如;在我的_layout.cshtml中:
@if (Team.Id == ViewBag.TeamId)
{
</div>
<div class="row">
}
爲什麼當我在C#語句中使用某些HTML時,Razor會抱怨無效的表達式和術語?如何在HTML語句中包含If語句
我該如何解決這個問題?
例如;在我的_layout.cshtml中:
@if (Team.Id == ViewBag.TeamId)
{
</div>
<div class="row">
}
Razor實際上試圖瞭解您的HTML。不幸的是,它不能具有高度的智能性,並且無法識別動態代碼或代碼。
由於
</div>
<div>
是無效的HTML,它抱怨。
您可以通過使用@:
這力量剃刀繞過其「HTML承認」避免這個問題,只需打印無論你怎麼問了。
E.g.
@if (Team.Id == ViewBag.TeamId)
{
@:</div>
@:<div class="row">
@:
}
您還可以使用@Html.Raw("YOUR HTML");
的if
語句中添加HTML代碼
作爲@RowanFreeman表明,逃避與HTML'@:'是圍繞這一方式。如果你能夠提供更多關於你在做什麼的背景(你的數據是什麼,你想要的標記結果是什麼),我敢打賭有人可以想出一個解決方案,不需要擔心這個問題。 – jdphenix
另一種選擇是將end div連接到起始div,反之亦然。給出的代碼片段與我來自哪裏的反模式有點相似,因爲您在看似隨機的地方分割div。 – holroy