我正在使用剃刀根据模型中的变量显示/隐藏页面内容:
@if (Model.TicketShown == null)
{
@:<div id="ticket-section">
} else {
@:<div id="ticket-section" style="display:none">
}
//More Code
@:</div>
我已经使用了一段时间,但今天我收到错误'“ @”,必须在结束标记上紧跟一个有效的代码块'。我在其他地方使用语法,并且工作正常。
为什么并且有一种更优雅的方法?谢谢
@:
打算在代码块内部使用(请参阅Explicit line transition),您的@:</div>
可能不在一个内部。您可以使用Html.Raw作为替代(例如@Html.Raw("</div>")
)。
?: operator的帮助下,还可以如下重写if:
<div id="ticket-section" style=@(Model.TicketShown == null ? "" : "display:none")>
...
</div>