在Razor中需要堆栈视图,允许我隐藏视图或字段

时间:2012-11-08 18:20:44

标签: c# html asp.net-mvc razor

我有几个部分视图需要将它们堆叠在我的网页上。

pv1 pv2

pv3 pv4

pv5 pv6

我还需要能够在每个视图中隐藏它们中的任何一个甚至标签。

我尝试使用表格,但我无法让它们显示正确。

以下是我所做的一个例子:

<h2>AccountScreen</h2>

  <table>
    <tr>
      @Html.Partial("CustomerInfoPartialView")
    </tr>
    <tr>
      @Html.Partial("BalancePartialView")
    </tr>
  </table>

这并没有像我希望的那样,这是一团糟。

我应该使用什么来堆叠我的部分视图,还能够以编程方式隐藏/显示它们?

2 个答案:

答案 0 :(得分:1)

正如人们所说,你应该使用<div>元素。您还应该为它们提供唯一标识符,并根据需要使用jQuery隐藏/显示。如果在渲染模型时有可用的条件,则根据需要向每个元素添加可见/隐藏样式可能更简单。

@
{
    Html.Partial("CustomerInfoPartialView")
    ...
    Html.Partial("CustomerInfoPartialView")
}

然后在每个部分:

@{
    var classToUse = (myVisibleCriteriaBool) ? "visibleClass" : "hiddenClass";
}
<div id="UniqueNamePartialView" class="stackableDivs @classToUse">
    Your html stuff here
</div>

只要类stackableDivs(我刚刚编写)包含浮动样式,它们应该适当地堆叠。这可能需要根据你希望它们如何堆叠来调整,但它仍然应该是css的问题。如果您在渲染视图时不知道,可以使用jQuery隐藏各个元素:

$($('#UniqueNamePartialView").hide()); 

$($('#UniqueNamePartialView").show());

我会远离toggle(),因为它是deprecated

答案 1 :(得分:0)

如果你想在视图中隐藏/显示它们在C#中,你所要做的就是渲染它们。

如果您想在JavaScript中隐藏/显示它们,只需将它们放在div内并使用$("your_div").toggle();