2013-03-11 40 views
1

我有局部视图的值称为像隐藏标签:如何基于在ViewData的

@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"] 

有人能解释我怎么能隐藏与类searchtypeselect股利,如果通过未来的值为false和sh如果这个值是真的呢?

+0

你可以在google这http://www.w3schools.com/aspnet/razor_cs_logic.asp – 2013-03-11 02:03:07

+0

这不是我真正想做的。我想在标签上设置隐藏属性。我仍然希望标记在那里我只想让它隐藏起来 – user2005657 2013-03-11 02:06:32

+0

我想你可以推断出来。老实说,这是一个糟糕的问题。你还没有做过自己的研究,基本上想要有人为你做你的工作。这不是什么意思。 – 2013-03-11 02:26:32

回答

1

使用@{ if{ } }设置属性风格display: none,方便。

2

条件属性渲染Conditional attribute rendering

如果您有可能为空,在过去的你需要做一个空检查,以避免写出一个空的属性,像这样的属性:

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

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

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

所以,如果@myClass为空,则输出仅仅是这样的:

<div>Content</div> 

尝试这样

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

[这也是一个很好的解释链接](https://gist.github.com/jonlabelle/8738373#conditional-attributes)。 – 2017-09-12 11:35:41