【问题标题】:How to hide a tag based on the value in ViewData如何根据 ViewData 中的值隐藏标签
【发布时间】:2013-02-26 03:06:19
【问题描述】:

我有一个局部视图,称为:

@Html.Partial("PersonSearch", new ViewDataDictionary { { "searchtypeselectvisible", false } })

在剃须刀文件中,我有 html:

<div class="searchtypeselect" >
        <input type="radio" name="searchtype" value="person" checked="checked" />Person
        <input type="radio" name="searchtype" value="organisation" class="orgsearchradiobtn" />Organisation
    </div>

我知道我可以通过以下方式访问剃须刀中的数据:

@ViewData["searchtypeselectvisible"]

如果通过的值为 false,有人可以解释我如何使用类 searchtypeselect 隐藏 div,如果值为 true,则显示它?

【问题讨论】:

  • 这不是我真正想做的。我想在标签上设置隐藏属性。我仍然希望标记在那里我只是希望它被隐藏
  • 我想你可以推理出来。老实说,这是一个糟糕的问题。你没有自己做任何研究,基本上希望有人为你做你的工作。这不是 SO 的用途。
  • 我个人喜欢在我的视图中避免逻辑,所以我建议添加一个可以绑定到 div 元素的模型来设置适当的设置来显示/隐藏它。您可能会将类属性绑定到 searchtypeselect 或另一个 displayNone 类
  • 哦,这个没有型号。这是一个没有数据开始的搜索。

标签: asp.net-mvc razor


【解决方案1】:

条件属性渲染Conditional attribute rendering

如果您有一个可能为 null 的属性,过去您需要进行 null 检查以避免写出空属性,如下所示:

<div @{if (myClass != null) { <text>class="@myClass"</text> } }>Content</div>

现在 Razor 能够自动处理该问题,因此您只需写出属性即可。如果为null,则不写入属性:

<div class="@myClass">Content</div>

所以如果@myClass 为空,输出就是这样:

<div>Content</div>

这样试试

@(ViewData["searchtypeselectvisible"]==true ? "yourDisplayClass" : "yourHidingDivClass");
【解决方案2】:

使用@{ if{ } } 设置属性样式和display: none,很简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多