如何根据ViewData中的值隐藏标记

时间:2013-03-11 02:02:32

标签: asp.net-mvc razor

我的部分视图叫做:

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

在razor文件中我有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"]

有人可以解释如何通过类searchtypeselect隐藏div,如果值为false,则显示该值是否为真?

2 个答案:

答案 0 :(得分:2)

条件属性呈现Conditional attribute rendering

如果你的属性可能为null,那么在过去你需要进行空检查以避免写出空属性,如下所示:

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

现在Razor能够自动处理,所以你可以写出属性。如果为null,则不写入该属性:

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

因此,如果@myClass为null,则输出就是:

<div>Content</div>

试试这个

@(ViewData["searchtypeselectvisible"]==true ? "yourDisplayClass" : "yourHidingDivClass");

答案 1 :(得分:1)

使用@{ if{ } }使用display: none轻松设置属性样式。