C# 如何在Visual Studio 2012上查看ASP.NET MVC移动页面

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等浏览器上查看手机页面给出一些提示,我将不胜感激。这取决于您可能需要的网站的手机检测方式: 调整来自浏览器的“用户代理”字符串。这方面有很多工具/插件 放些饼干 查看站点是否直接支持“使用移动视图”(即在底部有

我有一个开源的ASP.NET MVC()或nopcommerce.com,它是在ASP.NET MVC和razor view中开发的,它是桌面版和移动版,例如它有index.cshtml和index.mobile.cshtml,但我没有移动查看的经验


如果有人能就如何在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查询