DisplayModeProvider完成移动开发自动视图解析
2018-08-10 10:35 huoit 阅读(451) 评论(0) 收藏 举报MVC中新建视图命名:XXX.cshtml、XXX.mobile.cshtml;用手机访问会自动到xxx.mobile.cshtml
一、原理
MVC中是通过DisplayModeProvider实现View override从而实现自动解析到对应视图页面
默认有两个Mobile和“”,会根据浏览器的User-Agent判断跳转到哪个视图
也可以使用下面的方式重写,视图命名规则:xxx.DisplayModeName.cshtml则可以实现自动解析到对应的视图
protected void Application_Start() { …… …… DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("FF") { ContextCondition = (context => ((context.GetOverriddenUserAgent() != null)
&& context.Request.Browser.IsMobileDevice)&&context.GetOverriddenUserAgent().IndexOf ("Firefox", StringComparison.OrdinalIgnoreCase) >= 0)) }); DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("Chrome") { ContextCondition = (context => ((context.GetOverriddenUserAgent() != null)
&& context.Request.Browser.IsMobileDevice)&&context.GetOverriddenUserAgent().IndexOf ("Chrome", StringComparison.OrdinalIgnoreCase) >= 0)) }); …… ……
二、Chrome修改User-Agent


1、如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!
2、欢迎各位转载,但是未经作者本人同意,转载文章请在文章页面明显位置标明作者和原文连接,否则保留追究法律责任的权利。
作者博客: http://www.cnblogs.com/xmai/
浙公网安备 33010602011771号