gpt4 book ai didi

asp.net-mvc - ASP.NET MVC Razor 条件渲染元素

转载 作者:行者123 更新时间:2023-12-04 01:59:25 25 4
gpt4 key购买 nike

如何在 Razor 2 中有条件地呈现 HTML 元素?

例如,假设我有标签

    <div class="someclass">
<p>@somevalue</p>
</div>

如果@somevalue 的值等于1,我想禁止渲染 <-div-> 标记。在 Razor 中是否有一种简单的方法可以做到这一点,类似于我可能“隐藏” <-div-> 标记在浏览器中使用 Knockout.js,我可能会:
    <div class="someclass" data-bind="showWhenTrue: someValue != 1">
<p data-bind="text: someValue"></p>
</div>

目前,我最好的 Razor 替代方案是这样做:
      @if (someValue != 1) {
<div class="someclass">
<p>@somevalue</p>
</div>
}

最佳答案

有很多方法可以做到这一点。首先,应该注意的是,您的淘汰代码实际上并没有从输出中删除 html,它只是将其显示设置为隐藏。

您拥有的 Razor 代码实际上从呈现的 HTML 中删除了代码,所以这是完全不同的事情。

要回答您的问题,我们需要知道您想要实现的目标是什么。如果您只想隐藏显示,您可以简单地执行以下操作:

<div class="someclass" style="display: @{ somevalue == 1 ? @:"none" : @:"block" };">
<p>@somevalue</p>
</div>

你也可以用一个类来做:
<div class="someclass @{ somevalue == 1 ? @:"HideMe" : @:"ShowMe" }">
<p>@somevalue</p>
</div>

如果你想从输出中删除代码,那么你可以做你已经做过的事情。我不确定你对它有什么反感...但是如果你想要其他选择,你可以创建一个 Html助手,您可以使用 Razor 助手,您可以使用 Display 或 EditorTemplate....

这个列表实际上很长,我只是在摸索表面......

关于asp.net-mvc - ASP.NET MVC Razor 条件渲染元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23668506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com