虽然微软说asp.net能够匹配各种手机设备,但是手机型号众多,微软收集的手机资料有限,所以导致asp.net对很多手机
匹配错误,本来可以支持html的却生成html,本来只支持wml的,缺生成了html导致手机无法浏览;我们不能等待微软偶尔
发布一个设备更新包---更新有限的手机设备资料,这里我们自己都可以做:
asp.net识别设备型号是靠machine.config或者web.config对http协议HTTP_USER_AGENT设备标示来匹配的,
具体的你可以打开machine.config里面打开<browserCaps>节来看看。
下面是“强制特定手机生成WML”详细的代码,在web.config里的<system.web>节添加以下代码:
<browserCaps>
<resulttype="System.Web.Mobile.MobileCapabilities,System.Web.Mobile,Version=1.0.5000.0,
Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/>
<usevar="HTTP_USER_AGENT"/>
<filter>
<casematch="SEC-SGHX458|Motorola-T33">
preferredRenderingType="wml11"
preferredRenderingMime="text/vnd.wap.wml"
preferredImageMime="image/vnd.wap.wbmp"
</case>
</filter>
</browserCaps>
代码说明:
这里强制生成wml
preferredRenderingType="wml11"
preferredRenderingMime="text/vnd.wap.wml"
preferredImageMime="image/vnd.wap.wbmp"
最重要就是
<casematch="SEC-SGHX458|Motorola-T33">
这里是在匹配设备,可以参考正则表达式语法,SEC-SGHX458代表三星X458,Motorola-T33代表摩托e360