我的 _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}
答案 0 :(得分:1)
我认为这不是在一个布局中渲染多个@RenderBody()
的好方法。在这种情况下,解决方法是应该制作2个布局_LayoutMobile
和_LayoutDesktop
。 a运行时应该替换layout.i.e
@{
Layout =mobileView? "~/Views/Shared/_LayoutMobile.cshtml":"~/Views/Shared/_LayoutDesktop.cshtml";
}