首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MVC4中制作可切换的桌面和移动页面

问在MVC4中制作可切换的桌面和移动页面
EN

Stack Overflow用户
提问于 2014-12-26 14:45:12
回答 2查看 807关注 0票数 0

我用MVC4创建了一个自适应网站。我知道如何使用viewswitcher在整个网站的桌面和移动视图之间切换。我的问题是,当有人从移动设备访问某个页面时,我希望将该页面切换到桌面视图。

例如:有一个ActionResult测试,所以当一个人从桌面访问此页面(测试)时,默认情况下将显示桌面视图,但当一个人再次从移动设备访问同一页面时,桌面视图应显示而不是移动。因为我的网站是自适应的,所以有一个_Layout.Mobile.cshmtml页面,当一个人来自移动设备时,它会自动呈现。为了避免这种情况,我创建了test.Mobile.cshtml页面,在其中我设置了Layout = null;并复制粘贴了所有的css html,但是由于移动设备有媒体查询,所以我所有的Desktop _Layout.cshtml都被覆盖了,这不起作用。

所以我的问题是如何在桌面和移动设备之间切换单个页面,而不是整个网站。所有其他页面都应该按原样运行(自适应)。

EN

回答 2

Stack Overflow用户

发布于 2014-12-26 15:14:16

假设所讨论的视图是一个“完整”页面(这意味着它没有布局页面,而是一个格式良好的完整HTML页面),您只需要在该视图的头部省略viewport元标记。如果你不熟悉这个视窗,谷歌在这里有一个很不错的帖子:https://developers.google.com/web/fundamentals/layouts/rwd-fundamentals/set-the-viewport

如果您需要“桌面模式”可切换,则只需在viewport元素周围添加一个条件:

代码语言:javascript
复制
@if(ViewBag.EnableViewportScaling)
{
    <meta name="viewport" content="width=device-width, initial-scale=1" />
}

我假设您可以在呈现视图标记之前的某个时刻向ViewBag添加一个布尔属性。

票数 0
EN

Stack Overflow用户

发布于 2014-12-27 05:41:57

据我所知,此代码必须位于`_ViewStart.cshtml‘中:

代码语言:javascript
复制
@{
  if (isDesktopClient)
      Layout = "~/Views/Shared/_Layout.cshtml";
  else
      Layout = "~/Views/Shared/_Layout.mobile.cshtml";
}

所以你需要使用条件if (isDesktopClient || Request.Path == "~/Test")。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27653760

复制
相关文章

相似问题

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