移动网站和具有相同内容的网站/重定向到移动网站

时间:2013-10-28 22:22:01

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

我的应用中有2个未解决的问题。我在ASP.NET上构建了一个网站(桌面)和一个移动网站。两个站点都具有相同的功能,但移动视图是不同的。桌面版本有一个管理模块,我作为管理员可以更改不同的东西,其中包括两个版本中显示的一些图像。

我的麻烦如下:

  1. 如何使用一个域名来打开网站,具体取决于所使用的设备

  2. 考虑以上项目......如何才能为两个网站仅使用一个内容文件夹? (不同的Site.css)

  3. 我将非常感谢域文件夹结构的帮助,以实现这一目标

2 个答案:

答案 0 :(得分:0)

你的问题相当广泛,但希望这些资源可以激励你朝着拉动你想要的方向前进

我会选择一个网站,并将其重构为移动设备。执行此操作的一个好方法是实现CSS媒体查询。请查看此article from smashingmagazine,了解该主题的介绍以及一些入门提示。使用媒体查询,您可以根据屏幕宽度,方向等因素定义断点,以使您的站点相应地呈现。

另请参阅实施javascript库Modernizr,它也可以帮助您检测设备。该库可以帮助检测用户是否具有可能影响移动开发某些方面的某些功能,还可以基于设备检测提供条件资源加载(如果您对移动站点加载的带宽保护具有挑剔性,则非常有用)。即我的桌面需要所有这些桌面JavaScript库,我的移动网站可能只需要这个库。

如果你能够从头开始,那么你可能会更好地完成一个平局,将你想要移动到第四的架构布置成跨越多个平台。精心策划使用CSS媒体查询和现代化资源等资源可以产生一个网站,该网站几乎可以在任何设备上看起来很棒,都包含在一个项目中。

答案 1 :(得分:0)

如果您只想托管一个网站,这是完全可能的,我建议您在浏览器中使用用户代理。每个浏览器/设备的用户代理是不同的。因此,您可以轻松地为每台设备维护不同的视图。

打开Global.asax文件并将以下代码添加到Application_Start方法。

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("iPhone")
{
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf
    ("iPhone", StringComparison.OrdinalIgnoreCase) >= 0)
});

然后,您可以在views文件夹中轻松制作不同的视图。只需确保为视图添加前缀:

index.cshtml

iphone.index.cshtml

您可以在此网站上找到更多信息:http://www.asp.net/mvc/tutorials/mvc-4/aspnet-mvc-4-mobile-features

我举了一个例子,根据设备类型托管一个不同布局的网站:http://kotatgent.azurewebsites.net/

您可以通过下载此扩展程序手动更改Chrome中的用户代理来测试此问题: https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg