如何在两个单独的div标签中获取RenderBody()输出

时间:2017-06-08 06:57:48

标签: html asp.net-mvc razor view

我的 _Layout 视图设计中有两个<div>标记,其中一个用于移动视图,另一个用于桌面视图。设计由其他人完成,在移动设备和桌面设备上查看时会加载相应的视图。我无法改变设计,但我需要在蛾分区中获得 RenderBody(),例如

<div id="main">
  <div id="mobileView">
    @RenderBody()
  </div>
  <div id="desktopView">
    @RenderBody()
  </div>
</div>

但是这是不允许的,我们不能两次调用 RenderBody()。有没有解决方法来实现这个目标?

感谢您的任何想法:)

修改 以下是视图的更改方式 -

#mobileView{display:none}
@media screen and (max-width:767px){
#desktopView{display:none}
#mobileView{display:block}

1 个答案:

答案 0 :(得分:1)

我认为这不是在一个布局中渲染多个@RenderBody()的好方法。在这种情况下,解决方法是应该制作2个布局_LayoutMobile_LayoutDesktop。 a运行时应该替换layout.i.e

@{
Layout =mobileView? "~/Views/Shared/_LayoutMobile.cshtml":"~/Views/Shared/_LayoutDesktop.cshtml";
}