C# 如何在Visual Studio 2012上查看ASP.NET MVC移动页面
我有一个开源的ASP.NET MVC()或nopcommerce.com,它是在ASP.NET MVC和razor view中开发的,它是桌面版和移动版,例如它有index.cshtml和index.mobile.cshtml,但我没有移动查看的经验C# 如何在Visual Studio 2012上查看ASP.NET MVC移动页面,c#,asp.net,asp.net-mvc-4,mobile,C#,Asp.net,Asp.net Mvc 4,Mobile,我有一个开源的ASP.NET MVC()或nopcommerce.com,它是在ASP.NET MVC和razor view中开发的,它是桌面版和移动版,例如它有index.cshtml和index.mobile.cshtml,但我没有移动查看的经验 如果有人能就如何在Chrome和IE等浏览器上查看手机页面给出一些提示,我将不胜感激。这取决于您可能需要的网站的手机检测方式: 调整来自浏览器的“用户代理”字符串。这方面有很多工具/插件 放些饼干 查看站点是否直接支持“使用移动视图”(即在底部有
如果有人能就如何在Chrome和IE等浏览器上查看手机页面给出一些提示,我将不胜感激。这取决于您可能需要的网站的手机检测方式:
- 调整来自浏览器的“用户代理”字符串。这方面有很多工具/插件
- 放些饼干
- 查看站点是否直接支持“使用移动视图”(即在底部有此类链接)
- 在MVC中,您将声明
例如,在上面的链接中,他们声明了一个名为WP的模式,要访问该模式,您需要一个
index.cshtml
(正常模式)和一个index.WP.cshtml
(检测模式)
一旦你做到了,你可以通过测试任何你喜欢的东西来设置所有你喜欢的模式
例如my/APP\u Start/DisplayModeConfig.cs
public class DisplayModeConfig
{
public static void RegisterDisplayModes(DisplayModeProvider provider)
{
// INFO: Allows to name views/partials/masters like viewname.iphone.cshtml, and MVC will choose this automatically
// INFO: Lets remove the default "Mobile" mode, since it's pretty useless
var mobileDefault = DisplayModeProvider.Instance.Modes.First(m => m.DisplayModeId == "Mobile");
if (mobileDefault != null)
{
DisplayModeProvider.Instance.Modes.Remove(mobileDefault);
}
// INFO: Now add one that actually works
provider.Modes.Insert(0,
new DefaultDisplayMode("Mobile")
{
ContextCondition = (context => (!string.IsNullOrEmpty(context.GetOverriddenUserAgent()) && Regex.IsMatch(context.GetOverriddenUserAgent(), @"mobile|android|kindle|silk|midp", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant)))
});
// INFO: Order from least to most important (since we insert at position 0)
provider.Modes.Insert(1,
new DefaultDisplayMode("Win8")
{
ContextCondition = (context => (!string.IsNullOrEmpty(context.GetOverriddenUserAgent()) && context.GetOverriddenUserAgent().IndexOf("Windows NT 6.2", StringComparison.OrdinalIgnoreCase) >= 0))
});
}
}
你在@Request.Browser中也有很多好东西。*比如@Request.Browser.IsMobileDevice,@Request.Browser.Version,…大多数都很好,但我会在依赖它们之前测试这些助手。使用Safari,你可以
开发>用户代理>iPhone
等。你还可以指定自定义用户代理字符串。也就是说,不要因为你可以,就对显示模式发狂。对于简单的css/js内容,请坚持使用功能检测。仅当您需要切换整个页面或页面的很大一部分时,才应使用DisplayModes。例如,对于Chrome来说,一个带有奇特滑块的局部视图,对于IE来说,一个更兼容的视图,其中JS、CSS和HTML将完全不同。要调整设计,请查看响应式设计和@media查询