MVC有一个你可以在你的项目中引用的名为“system.web.webpages”的dll,你可以用它在global.asax文件的“application_start”方法中执行自适应渲染,如下所示:
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("iPhone")
{
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf
("iPhone", StringComparison.OrdinalIgnoreCase) >= 0)
});
Web表单中是否有类似的功能?
如果可能的话,我不想创建一个单独的Mobile文件夹和Mobile主页,并检查preinit事件并切换到渲染我的移动母版页。对于检查移动设备的具体类型等,显然不那么灵活。
答案 0 :(得分:1)
您可以使用Request.Browser.IsMobileDevice来检测移动设备并调整渲染。最好使用最新的移动设备列表,您可以使用例如51degrees.mobi。
Here是一份广泛的白皮书,可以帮助您。
编辑:
根据白皮书: “这很容易做到。例如,您可以将以下PreInit处理程序添加到Web窗体中:
protected void Page_PreInit(object sender, EventArgs e)
{
if (Request.Browser.IsMobileDevice)
MasterPageFile = "~/Mobile.Master";
}
“
如果51degrees.mobi为您提供了确切的移动设备,您可以为那里的不同设备设置主页文件。