有人会疑问,为什么他能识别.mobile的后缀却不能识别例如:.mac .dnt 等等后缀呢?这些又是放在哪里的呢?
mobile 这个后缀其实是存放在:DisplayModeProvider.Instance.Modes 里面的,我们监视一下,发现里面就一个mobile,还有一个是默认的

可以猜想,运行的时候是从上往下匹配的,“”的是通用匹配,那么我们加入一个自定义的后缀看看==>(可以思考一下,为什么用 insert 不用 add)
1
2
3
4
5
<code>//添加一个自定义后缀</code>
<code>DisplayModeProvider.Instance.Modes.Insert(0, </code><code>new</code> <code>DefaultDisplayMode(</code><code>"dnt"</code><code>)</code>
<code>{</code>
<code> </code><code>ContextCondition = (Context) => Context.Request.UserAgent.Contains(</code><code>"dnt"</code><code>)</code>
<code>});</code>
可能你不是很理解 DefaultDisplayMode,看看反编译吧----构造函数为suffix赋值(后缀)
添加一个自定义的后缀视图
打开谷歌浏览器,设置一下User-Agent Switcher的浏览模式
附录:
DisplayModeProvider:
View Code
DefaultDisplayMode:
<a href="http://www.asp.net/mvc/overview/older-versions/aspnet-mvc-4-mobile-features" target="_blank">http://www.asp.net/mvc/overview/older-versions/aspnet-mvc-4-mobile-features</a>
<a href="http://stackoverflow.com/questions/9354188/asp-net-mvc-4-mobile-display-modes-stop-working" target="_blank">http://stackoverflow.com/questions/9354188/asp-net-mvc-4-mobile-display-modes-stop-working</a>
本文转自毒逆天博客园博客,原文链接:http://www.cnblogs.com/dunitian/p/5218140.html,如需转载请自行联系原作者