在Razor中基于模型var显示隐藏html属性-“ @”后必须跟随有效的代码块

问题描述 投票:0回答:1

我正在使用剃刀根据模型中的变量显示/隐藏页面内容:

     @if (Model.TicketShown == null)
        {
            @:<div id="ticket-section">
        } else {
            @:<div id="ticket-section" style="display:none">
        }

       //More Code

     @:</div>

我已经使用了一段时间,但今天我收到错误'“ @”,必须在结束标记上紧跟一个有效的代码块'。我在其他地方使用语法,并且工作正常。

为什么并且有一种更优雅的方法?谢谢

asp.net-core razor
1个回答
1
投票

@:打算在代码块内部使用(请参阅Explicit line transition),您的@:</div>可能不在一个内部。您可以使用Html.Raw作为替代(例如@Html.Raw("</div>"))。

?: operator的帮助下,还可以如下重写if:

<div id="ticket-section" style=@(Model.TicketShown == null ? "" : "display:none")>
    ...
</div>
© www.soinside.com 2019 - 2024. All rights reserved.