使用asp.net移动设备的技巧是什么,我知道如何检测移动设备,但我很难找到一种在移动设备上显示我的网页的好方法。
我正在考虑做一个多视图并在移动时显示移动视图,但是这对我们的母版页不起作用,除非我这样做,我宁愿让页面重定向到移动版本。
但是我希望这是自动发生的,不想将代码添加到每个页面,我使用了HttpModule但是它导致网站中的每个对象都使用它,只想在aspx页面上这样做我刚刚使用了一个用户控件,它放在母版页的顶部。
我还在树中添加了一个名为mobile的文件夹,其中包含每个移动设备的文件夹,所以如果他们转到〜/ Account / Login.aspx,它会重定向到〜/ Account / Mobile / IPhone / Login.aspx但我有排除移动设备中的母版页,或者它将处于无限循环中:)
我喜欢MVC的方式,他们有一个只重定向的自定义ViewEngine,但由于我公司需要的一些ASP.NET控件,我不能去MVC。
想法?
答案 0 :(得分: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。您只需要确保您的浏览器定义是最新的。
避免使用像GridView这样的复杂ASP .NET控件,因为您对HTML和CSS的控制较少。像ListView这样的控件更加灵活。
某些功能(如AJAX)在某些设备上可能有些错误,特别是如果您使用的是AJAX UpdatePanel。您可以使用模拟器来测试这些方案。或者,您可以在移动设备上禁用这些功能。这是假设你甚至使用它们。为了适应低端设备,您可以拥有一个并行运行的独立移动网站。要创建移动页面,请继承 System.Web.UI.MobileControls.MobilePage ,而不是普通的Page类。 W3Schools有一些有用的信息:http://www.w3schools.com/dotnetmobile/control_mobilepage.asp。请注意,移动网络表单现已弃用,因此不会被视为前进的方式。
如果您要并行运行两个或多个站点,并且两者都需要复杂的逻辑,那么您可以创建一个类库来保存共享功能。它会削减一些代码重复。
要在重定向到移动版本时避免无限循环,只需检查当前网址,看它是否包含移动网站的基本网址。最简单的方法是在主页面上进行重定向,但在点击的每个页面上都有一个链接到移动版本。
总的来说,这是一个非常复杂的主题,所以也许可以考虑找一本合适的书。