c# – 如何获取当前的显示模式在mvc4中是移动的
发布时间:2020-12-15 17:47:38 所属栏目:百科 来源:网络整理
导读:我正在开发移动Web应用程序.我需要得到当前的显示模式是在控制器中移动. 我的问题是:我有2个部分视图 /Views/Shared/ListItem.cshtml/Views/Shared/ListItem.mobile.cshtml 当使用PartialView(“ListItem”)这是正确的工作.但是我需要将部分浏览放在子文件
我正在开发移动Web应用程序.我需要得到当前的显示模式是在控制器中移动.
我的问题是:我有2个部分视图 /Views/Shared/ListItem.cshtml /Views/Shared/ListItem.mobile.cshtml 当使用PartialView(“ListItem”)这是正确的工作.但是我需要将部分浏览放在子文件夹中 /Views/Shared/Modules/Post/ListItem.cshtml /Views/Shared/Modules/Post/ListItem.mobile.cshtml 当我使用PartialView(“?/ Views / Shared / Modules / Post / ListItem.cshtml”)这个工作在桌面上.当displaymode是移动的,ListItem.mobile.cshtml不显示. 我的选择是 if( CurrentDisplayMode==Mobile){ PartialView("~/Views/Shared/Modules/Post/ListItem.mobile.cshtml"); else PartialView("~/Views/Shared/Modules/Post/ListItem.cshtml"); 如何获取CurrentDisplayMode? 解决方法
我还需要访问当前的显示模式,所以我可以调整传递给视图的视图模型(在移动视图中更少的信息,因此它可以从较小的视图模型显示).
ControllerContext.DisplayMode不能使用,因为它将在操作执行后设置. 因此,您必须根据上下文(用户代理,cookie,屏幕大小等)确定显示模式. 这是一个nice trick I found on the ASP.NEt forums,它将让您使用与以后被框架使用的相同的逻辑来确定显示模式: public string GetDisplayModeId() { foreach (var mode in DisplayModeProvider.Instance.Modes) if (mode.CanHandleContext(HttpContext)) return mode.DisplayModeId; throw new Exception("No display mode could be found for the current context."); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |