我正在开发一个有桌面和移动端视图的网站,使用MVC5技术。
该项目为每个版本分别设计了不同的布局:
_Layout.cshtml
_Layout.Mobile.cshtml
在_ViewStart.cshtml中,以下代码应该可以让移动设备显示.Mobile.cshtml视图(如果存在),否则显示桌面版本:
DisplayModeProvider.Instance.RequireConsistentDisplayMode = true;
问题:
我遇到的问题是,一些没有.Mobile版本的视图使用_Layout.Mobile显示,而其他一些视图则表现正常。
尝试过的方法:
我在有问题的视图.cshtml文件中强制执行了浏览器覆盖:
Request.RequestContext.HttpContext.SetOverriddenBrowser(BrowserOverride.Desktop);
然而,此解决方案并不可行,因为覆盖仍然存在,当用户继续浏览网站时,所有页面都会以桌面模式显示,即使它们不应该。
另一个不可接受的解决方案是在退出此屏幕时手动清除覆盖,因为用户可能已选择查看桌面版本,我们将撤销他们的操作。
实际问题:
如何强制将视图切换到桌面模式,而不会在用户继续浏览时保留更改? 关于移动视图,还有其他我需要注意的事项吗?