【问题标题】:mobile asp.net techniques移动asp.net技术
【发布时间】:2010-08-17 13:26:05
【问题描述】:

您在使用移动设备和 asp.net 方面有哪些技巧,我知道如何检测移动设备,但我很难找到一种在移动设备上显示我的网页的好方法。

我正在考虑只做一个多视图并在它们移动时显示移动视图,但是除非我这样做,否则这不适用于我们的母版页,我宁愿只是将页面重定向到移动版本.

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

我还在树中添加了一个名为 mobile 的文件夹,其中包含每个移动设备的文件夹,因此如果他们转到 ~/Account/Login.aspx 它会重定向到 ~/Account/Mobile/IPhone/Login.aspx 但我有排除移动设备中的母版页,否则它将陷入无限循环:)

我喜欢 MVC 的做法,因为他们有一个自定义 ViewEngine 只是重定向,但由于我的公司需要一些 ASP.NET 控件,我无法使用 MVC。

想法?

【问题讨论】:

  • 您打算支持哪种手机?例如,可以在 iPhone 上运行的页面不一定可以在索尼爱立信 K700 上运行。另请注意,人们可能正在使用 Opera Mini 等浏览器。 Opera 甚至可以在非常基本的手机上运行,​​并使用代理服务器,因此它可以经常以一种运行良好的方式重新格式化页面。
  • 计划同时使用它,我使用的想法将适用于多部手机,因为我可以为每种类型的手机使用一个文件夹.. "~/Account/Mobile/BlackBerry/Login.aspx" 。 . 我正在使用的另一种技术是使用自定义文件扩展名和 HttpModule,而不是使用目录,如果我转到 Login.aspx 和 im mobile,它将转到 Login.mobile,但将页面呈现为.aspx 页面。不幸的是,这不会使它支持多部手机..

标签: asp.net mobile


【解决方案1】:

这在很大程度上取决于特定网站以及促使您考虑拥有该网站的移动版本的原因。您有多少内容不适合移动浏览器(例如 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。您只需要确保您的浏览器定义是最新的。

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

像 AJAX 之类的某些功能在某些设备上可能存在一些问题,尤其是在您使用 AJAX 更新面板时。您可以使用模拟器来测试这些场景。或者,您可以在移动设备上禁用这些功能。那是假设您甚至使用它们。

为了适应低端设备,您可以拥有一个并行运行的单独移动网站。要创建移动页面,您需要继承 System.Web.UI.MobileControls.MobilePage 而不是普通的 Page 类。 W3Schools 有一些有用的信息:http://www.w3schools.com/dotnetmobile/control_mobilepage.asp。请注意,移动网络表单现在已被弃用,因此它不被视为前进的方向。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多