如何在不同的桌面浏览器上加载不同的视图

时间:2013-05-22 07:24:03

标签: c# asp.net-mvc-4 view

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

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

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

任何人都可以帮助我吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

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

DisplayModeProvider

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

答案 1 :(得分:0)

this可以帮助你吗?

如果您想了解浏览器中的浏览器

,也可以使用jQuery.browser插件