Web窗体的自适应呈现

时间:2013-08-08 17:19:49

标签: asp.net webforms adaptive-design

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事件并切换到渲染我的移动母版页。对于检查移动设备的具体类型等,显然不那么灵活。

1 个答案:

答案 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为您提供了确切的移动设备,您可以为那里的不同设备设置主页文件。