如何使用Razor更改标签的样式?

时间:2017-12-26 18:46:29

标签: asp.net-mvc

我有一个HTML标记,我想只在条件为真时才可见,否则它将被隐藏。为此,我尝试使用Razor更改style属性,但仍然无法执行此操作。

请注意:我不想使用JQuery,我只想使用Razor。

我怎么能这样做?

尝试

<!--it will only visible if the conditional true-->
<div class="form-group" @(usuario.role == RoleType.Investidor) ? style="display:none;" : style="display:normal;">
    <h1>Description</h1>
</div>

2 个答案:

答案 0 :(得分:2)

您可以尝试做类似的事情:

@if (usuario.role != RoleType.Investidor)
{
    <div class="form-group" style="display: normal">
        <h1>Description</h1>
    </div>
}

如果RoleType等于Investidor,则div将不会显示。

如果这个元素的存在对你很重要,你可以这样做:

@if (usuario.role != RoleType.Investidor)
{
    <div class="form-group" style="display: normal">
        <h1>Description</h1>
    </div>
} else {
    <div class="form-group" style="display: none">
        <h1>Description</h1>
    </div>
}

答案 1 :(得分:1)

我会假设这样的事情有效:

<div class="form-group" style="@(usuario.role == RoleType.Investidor ? "display: none" : string.Empty)">
    <h1>Description</h1>
</div>

将三元语句移动到style的属性值中。您也可以将string.Empty替换为null - 取决于上下文,这可能使Razor引擎省略该属性,而不是呈现空值。