2010-06-30 55 views
1

我最近一直在想这个,我不知道创建一个现有的或新的MVC2网站/应用程序的移动版本的一个非常好的和整洁的方式。在asp.net MVC2中制作网站的移动版本的最佳方式是什么?

我认为最简单的方法是根据是否检测到移动设备使用不同的样式表,但如果您有大量嵌入式图像,或者出于其他原因,有时您还需要更改视图内容。

这是什么方法?有没有在MVC2中轻松主持的方法?

回答

2

好MVC只是你的服务器端技术,你应该问自己是“什么是最好的做法是创建一个移动网站,无论是服务器端技术的”。

在我看来,创建一个良好的形成和语义(X)HTML是第一步。正如你所说,最合理的做法是为不同的媒体类型创建不同的样式表,并且你是对的。

至于你提到,像内联图像,考虑这个问题:是这些图片内容还是外观?

在第一种情况下,它们应存在即使在移动版本。 在后者中,它们是在样式表中定义的,因此您可以在移动css中简单地避免它们。

我能想到的唯一的例外是当你想在移动设备上提供不同的功能,或者如果你被迫的,即对严重依赖JS网页和这些脚本不会在移动浏览器上运行。在这种情况下,您可能希望创建这些页面的不同版本并根据用户代理提供适当的版本。

+0

但是你对CSS中没有定义的图像做什么?只需在移动版本上设置显示:无? – Andrew 2010-06-30 10:40:10

+0

“创建这些页面的不同版本并根据用户代理提供相应的版本。” - 想知道为MVC的所述页面执行此操作的好方法 – Andrew 2010-06-30 10:41:26

+1

对于图像,取决于它。即使是移动设备,它们也是重要内容吗在这种情况下,你应该显示它们。否则显示:没有一个是合适的。 对于另一个问题:您可以为您的actionmethod创建2个视图。然后在actionmethod中,您可以读取用户代理,并根据它呈现一个视图或另一个视图。 – 2010-06-30 10:45:40

2

检查NerdDrinner的源代码。他们实现了从基础WebFormViewEngine类继承的MobileCapableWebFormViewEngine类。 MobileCapableWebFormViewEngine使用HTTPContext来决定在客户端中呈现哪个视图。当你看到源代码时,这会更有意义

+0

我已经完成了大部分ner晚餐,但必须在移动设备前停止。将检查出来。 – Andrew 2010-06-30 10:57:32

相关问题