首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从子页面控制布局呈现

从子页面控制布局呈现
EN

Stack Overflow用户
提问于 2013-12-10 18:47:58
回答 1查看 119关注 0票数 0

我有一个布局页面,目前,有一个页面使用该布局。我想有一个页面的一部分,可以显示或隐藏在子页面的酌处权。如果它是隐藏的,那么其他样式的变化,比如主内容div的宽度,需要进行调整。下面是我的非工作尝试:

布局页面

代码语言:javascript
复制
@{
    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>

子页

代码语言:javascript
复制
@{
    ViewBag.Title = "Edit";
    Layout = "~/Views/Shared/_NestedLayout.cshtml";
    ViewBag.ShowTree = false;
}

在此实例中,ShowTree的值设置为true,布局页呈现,然后子节点将其设置为false,内容呈现。基于MVC的页面生命周期,这是非常有意义的。但我当然不想让它起作用。

我知道我可以在控制器中设置这个值,而不是在布局/网页中设置它,但是如果可以的话,我希望这完全是一个设计的东西,并将它排除在控制器之外。

我倾向于它根本不调用操作,而不只是用JavaScript隐藏数据。

EN

回答 1

Stack Overflow用户

发布于 2013-12-10 19:04:10

我喜欢您的方法,但如果不起作用,我能想到的唯一其他机制就是使用@section来控制子视图。不太理想,但应该有效。

布局页面:

代码语言:javascript
复制
<div class="row">
    @RenderSection("ItemTreeSection", required: false)

    <div class="@(ViewBag.ShowTree ? "col-md-10" : "col-md-12")">
        @RenderBody()
    </div>
</div>

儿童观点:

代码语言:javascript
复制
@section ItemTreeSection {
    <div class="col-md-2">
        @Html.Action("ItemTree")
    </div>
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20502810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档