2

我正在创建 ASP.Net mvc4 应用程序。在此,我想在桌面版本上为不同的浏览器加载不同的视图。

在 mvc4 中,我们可以为桌面和移动设备加载不同的视图,但在这里我想为桌面浏览器和相同的浏览器加载不同的视图,但不同的版本,比如

桌面 chrome 与桌面 IE9 桌面 IE8 与桌面 IE9

谁能帮我?

提前致谢。

4

2 回答 2

2

就个人而言,我不认为View每个桌面浏览器都有不同的方法,您要解决的问题可能是Css/JavaScript问题,与View基本上应该包含内容而不是功能/设计的问题无关。

但是,您可以利用新DisplayModeProvider机制(在 MVC 4 中):

在你的Global.asax

    protected void Application_Start()
    {
        // Internet Explorer 9 (view prefix will be "ie9")
        DisplayModeProvider.Instance.Modes.Add(new DefaultDisplayMode("ie9")
            {
                ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("MSIE 9.", StringComparison.OrdinalIgnoreCase) >= 0)
            });

        // Internet Explorer 8 (view prefix will be "ie8")
        DisplayModeProvider.Instance.Modes.Add(new DefaultDisplayMode("ie8")
        {
            ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("MSIE 8.", StringComparison.OrdinalIgnoreCase) >= 0)
        });

        // Internet Explorer 7 (view prefix will be "ie7")
        DisplayModeProvider.Instance.Modes.Add(new DefaultDisplayMode("ie7")
        {
            ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("MSIE 7.", StringComparison.OrdinalIgnoreCase) >= 0)
        });

        // Google Chrome (view prefix will be "chrome")
        DisplayModeProvider.Instance.Modes.Add(new DefaultDisplayMode("chrome")
        {
            ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("Chrome", StringComparison.OrdinalIgnoreCase) >= 0)
        });

        // Mozilla Firefox (view prefix will be "firefox")
        DisplayModeProvider.Instance.Modes.Add(new DefaultDisplayMode("firefox")
        {
            ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("Firefox", StringComparison.OrdinalIgnoreCase) >= 0)
        });

在您的Views文件夹中:

  /Views/[Controler]/[Action].ie9.cshtml
  /Views/[Controler]/[Action].ie8.cshtml
  /Views/[Controler]/[Action].ie7.cshtml
  /Views/[Controler]/[Action].chrome.cshtml
  /Views/[Controler]/[Action].firefox.cshtml
于 2013-05-22T07:49:20.777 回答
0

可以帮助你吗?

或者如果你想在 View 中了解浏览器,你可以使用jQuery.browser插件

于 2013-05-22T07:32:12.487 回答