gpt4 book ai didi

c# - 如何在不同的桌面浏览器上加载不同的 View

转载 作者:太空宇宙 更新时间:2023-11-03 11:03:54 24 4
gpt4 key购买 nike

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

在 mvc4 中,我们可以为桌面和移动设备加载不同的 View ,但在这里我想为桌面浏览器加载不同的 View ,并且在同一浏览器但不同的版本中加载不同的 View ,例如

桌面版 Chrome 与桌面版 IE9桌面 IE8 与桌面 IE9

谁能帮帮我?

提前致谢。

最佳答案

就个人而言,我不认为每个桌面浏览器的不同View是可行的方法,您要解决的问题可能是Css /JavaScript 问题,与 View 无关,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

关于c# - 如何在不同的桌面浏览器上加载不同的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16685800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com