0

MVC 有一个您可以在项目中引用的 dll,名为“system.web.webpages”,您可以使用它在 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 事件并切换到呈现我的移动版母版页。对于检查特定类型的移动设备等,显然没有那么灵活。

4

1 回答 1

1

您可以使用 Request.Browser.IsMobileDevice 来检测移动设备并调整您的渲染。最好使用最新的移动设备列表,例如 51degrees.mobi。

是一份内容广泛的白皮书,可帮助您顺利上路。

编辑:

根据白皮书:“这很容易做到。例如,您可以将如下 PreInit 处理程序添加到 Web 表单中:

protected void Page_PreInit(object sender, EventArgs e)
{
    if (Request.Browser.IsMobileDevice)
        MasterPageFile = "~/Mobile.Master";
}

"

如果 51degrees.mobi 为您提供准确的移动设备,您可以在那里为您的不同设备设置母版文件。

于 2013-08-08T18:57:55.727 回答