代码之家  ›  专栏  ›  技术社区  ›  jaekie

移动ASP.NET技术

  •  3
  • jaekie  · 技术社区  · 14 年前

    你在ASP.NET中使用移动的技术是什么?我知道如何检测移动,但是我很难找到一种在移动设备上显示页面的好方法。

    我正在考虑在移动时进行多视图并显示移动视图,但是如果不进行相同操作,这将不适用于我们的母版页,我宁愿将页面重定向到移动版本。

    但我希望这能自动发生,不想把代码添加到每个页面,我使用了一个httpmodule,但它会导致网站中的每个对象都使用它,只想在aspx页面上使用它,所以我只是使用了一个用户控件,它放在母版页的顶部。

    我还在树中添加了一个名为mobile的文件夹,其中包含每个移动设备的文件夹,因此,如果它们转到~/account/login.aspx,它将重定向到~/account/mobile/iphone/login.aspx,但我必须排除移动设备中的主页,否则它将进入无休止的循环:)

    我喜欢MVC的方式,他们有一个自定义的视图引擎,只是重定向,但我不能去MVC,因为我的公司需要一些ASP.NET控件。

    思想?

    1 回复  |  直到 14 年前
        1
  •  1
  •   James    14 年前

    这在很大程度上取决于特定的站点以及是什么促使您考虑使用该站点的移动版本。有多少内容不适合移动浏览器(如Flash、Ajax)?您提到的这些自定义控件有多复杂?

    就我个人而言,我认为最好的办法是设计你的主网站,使其与浏览最新智能手机(如iPhone、Android)的人兼容,因为他们变得非常流行,而且能力也越来越强。这些手机的浏览器通常是基于WebKit的,所以在Chrome或Safari中进行测试至少可以让您了解页面的工作情况。

    如有必要,您可以对桌面和移动设备使用稍微不同的样式表。通过隐藏不重要的内容和简化导航,可以使页面更容易访问。

    实际上,ASP.NET内置了一个复杂的设备筛选系统,因此您可以根据当前浏览器的不同,更改页面的某些部分,甚至是要使用的母版页。请参见这里: http://ryanfarley.com/blog/archive/2008/08/14/more-on-device-filtering-with-asp.net-server-control-properties.aspx . 您只需要确保您的浏览器定义是最新的。

    避免使用像GridView这样复杂的ASP.NET控件,因为您对HTML和CSS的控制较少。像ListView这样的控件更加灵活。

    在某些设备上,像Ajax这样的功能可能有点麻烦,特别是在使用Ajax更新面板的情况下。您可以使用模拟器来测试这些场景。或者,您可以在移动设备上禁用这些功能。这是假设你甚至在使用它们。

    为了适应低端设备,您可以有一个单独的并行运行的移动站点。若要创建移动网页,请继承自 system.web.ui.mobileControls.mobilePage 而不是普通的页面类。W3学校有一些有用的信息: http://www.w3schools.com/dotnetmobile/control_mobilepage.asp . 请注意,移动Web表单现在已被弃用,因此它不被视为前进的道路。

    如果要并行运行两个或多个站点,并且两者都需要复杂的逻辑,那么可以创建一个类库来保存共享功能。它可以减少一些代码重复。

    为了避免在重定向到移动版本时出现无限循环,只需检查当前URL,查看它是否包含移动站点的基本URL。在主页面上进行重定向可能是最简单的方法,但是在每一页上的某个地方都有一个链接,当点击时该链接会转到移动版本。

    总的来说,这是一个非常复杂的主题,所以也许可以考虑买一本合适的书。