我对 ASP.NET 有两次相同的调用,唯一的区别是用户代理。我使用 Fiddler 重现了这个问题。
HTTP 请求行是:
PUT http://localhost/API/es/us/havana/club/tickets/JiWOUUMxukGVWwVXQnjgfw%7C%7C214 HTTP/1.1
适用于:
User-Agent: Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Safari/537.36
失败:
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4
其他一切都 100% 相同。
就我而言,根本原因是 MVC 多视图和显示模式提供程序。这使得 MVC 应用程序能够神奇地获取特定于设备的视图;例如
自定义.cshtml
客户.mobile.cshtml
本文对该功能进行了很好的解释,并详细介绍了如何关闭它:https://learn.microsoft.com/en-us/archive/msdn-magazine/2013/august/cutting-edge-creating-mobile-optimized-views-in-asp-net-mvc-4-part-2-使用 wurfl
我通过将 Microsoft.AspNet.WebPages 包添加到我的项目中并在启动中添加对此代码的调用(global.asax 中的 application_start 或如果使用 OWIN,则使用 OwinStartup 属性装饰的方法)来解决此问题:
public static void RegisterDisplayModes()
{
// MVC has handy helper to find device-specfic views. Ain't no body got time for that.
dynamic modeDesktop = new DefaultDisplayMode("") { ContextCondition = (c => { return true; }) };
dynamic displayModes = DisplayModeProvider.Instance.Modes;
displayModes.Clear();
displayModes.Add(modeDesktop);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)