我正在寻找一种将未由MVC4和51degrees.mobi设计的自定义移动设备的HttpContext.Current.Request.Browser.IsMobileDevice
设置为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。
最佳答案
该属性是由客户端发送到服务器的请求设置的,以便您检查服务器上的浏览器用户代理,这就是为什么不允许更改它的原因。
如果要更改服务器上的用户代理,则需要添加以下行:
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();
看看这个page。或者如何在此link中的mvc中覆盖默认显示模式
关于c# - 如何重写Browser.IsMobileDevice是ASP.NET MVC4应用程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19606121/