视图中if else和标记的错误
本文关键字:错误 if else 视图 | 更新日期: 2023-09-27 18:16:15
我有一个if/else
块在我的视图中显示一些基于一些ViewBag
数据的html,但似乎我在剃刀语法中有错误(我是剃刀的新手),我得到以下消息:
相关代码:解析器错误消息:if块缺少结束"}"字符。确保这个块中的所有"{"字符都有一个匹配的"}"字符,并且没有一个"}"字符被解释为标记。
@if (ViewBag.Sidebar == "Yes")
{
<div class="col-xs-12 col-md-3">
@Html.Action("SidebarPartial", "Pages")
</div>
<div class="col-xs-12 col-md-8">
}
else
{
<div class="col-xs-12 col-md-12">
}
@RenderBody()
</div>
你可以这样做
@if (ViewBag.Sidebar == "Yes")
{
<div class="col-xs-12 col-md-3">
@Html.Action("SidebarPartial", "Pages")
</div>
@Html.Raw("<div class='col-xs-12 col-md-8'>")
}
else
{
@Html.Raw("<div class='col-xs-12 col-md-12'>")
}
@RenderBody()
</div>
这不是剃须刀的bug。不正确关闭div混淆剃刀。
应该在一个if块中打开和关闭div。这是一种解决方案,除此之外,您还可以像这样使用类。
@if (ViewBag.Sidebar == "Yes")
{
@:<div class="col-xs-12 col-md-3">
@Html.Action("SidebarPartial", "Pages")
</div>
@:<div class="col-xs-12 col-md-8">
}
else
{
@:<div class="col-xs-12 col-md-12">
}
@RenderBody()
</div>
希望这对你有帮助!
可以将类存储在字符串中:
@{
string cls = "col-md-12";
if (ViewBag.Sidebar == "Yes") { cls = "col-md-8"; }
}
@if (ViewBag.Sidebar == "Yes")
{
<div class="col-xs-12 col-md-3">
@Html.Action("SidebarPartial", "Pages")
</div>
}
<div class="col-xs-12 @cls">
@RenderBody()
</div>