0
我有一个布局页面,并且目前有一个页面使用该布局。我想要在页面上显示或隐藏部分页面。如果它隐藏,则需要调整其他样式更改,如主内容div的宽度。下面是我非工作在这个尝试:从子页面呈现控件布局
布局页
@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.ShowTree = true;
}
<div class="row">
@if(ViewBag.ShowTree){
<div class="col-md-2">
@Html.Action("ItemTree")
</div>
}
<div class="@(ViewBag.ShowTree ? "col-md-10" : "col-md-12")">
@RenderBody()
</div>
</div>
子页面
@{
ViewBag.Title = "Edit";
Layout = "~/Views/Shared/_NestedLayout.cshtml";
ViewBag.ShowTree = false;
}
在这种情况下为ShowTree值设置为true,布局页面呈现,然后孩子将其设置为false,并呈现内容。基于MVC的页面生命周期,这非常有意义。但当然不是我想要它如何工作。
我知道我可以在控制器中设置这个值,而不是将它设置在布局/网页中,但是我希望如果我可以将它设置为纯粹的设计,并且保持它不在控制器。
我的偏好是它根本不会调用该操作,而不仅仅是使用JavaScript隐藏数据。
所以我就必须同时使用部分和标志...不理想,但它可能会工作,我想。 – Peter
Arghhh,我没有注意到你也在使用该标志来显示不同的网格列。现在我不喜欢我的解决方案。 –