1

我正在寻找一种方法来HttpContext.Current.Request.Browser.IsMobileDevice为未受 MVC4 和 51degrees.mobi 检测的自定义移动设备设置为 true,这也用于应用程序。

我在 Global.asax.cs 中试过这个:

protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e)
{
    HttpContext.Current.Request.Browser.IsMobileDevice = true;
}

但我得到一个编译错误:

无法将属性或索引器“System.Web.Configuration.HttpCapabilitiesBase.IsMobileDevice”分配给 - 它是只读的

使用 51degrees.mobi、jquery、jquery-ui 和 jquery-ui-mobile。

4

1 回答 1

3

该属性由客户端发送到服务器的请求设置,以便您检查服务器上的浏览器用户代理,这就是不允许更改的原因。

如果要更改服务器上的用户代理,则需要添加以下行:

HttpContext.SetOverriddenBrowser(BrowserOverride.Mobile);

如果您知道可以手动设置用户代理:

HttpContext.SetOverriddenBrowser("Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7");

要清除覆盖,您需要:

HttpContext.ClearOverriddenBrowser();

看看这个页面。或者如何在这个链接中覆盖 mvc 中的默认显示模式

于 2013-10-26T11:50:46.860 回答