我最近一直在考虑这个问题,但我不知道创建现有或新 MVC2 网站/应用程序的移动版本的一种非常好的和整洁的方法。
我认为最简单的方法是使用不同的样式表,具体取决于是否检测到移动设备,但有时如果您到处都有大量内联图像或出于其他原因,您也需要更改视图内容。
对此有什么好的方法?在MVC2中有没有一种相当容易的主题化方法?
我最近一直在考虑这个问题,但我不知道创建现有或新 MVC2 网站/应用程序的移动版本的一种非常好的和整洁的方法。
我认为最简单的方法是使用不同的样式表,具体取决于是否检测到移动设备,但有时如果您到处都有大量内联图像或出于其他原因,您也需要更改视图内容。
对此有什么好的方法?在MVC2中有没有一种相当容易的主题化方法?
好吧,MVC 只是您的服务器端技术,您应该问自己“创建移动网站的最佳实践是什么,无论服务器端技术如何”。
在我看来,第一步是创建一个格式良好且语义良好的 (x)html。正如您所说,最合乎逻辑的做法是为不同的媒体类型创建不同的样式表,您是对的。
至于您提到的问题,例如内联图像,请考虑以下问题:这些图像是内容还是演示文稿?
在第一种情况下,它们甚至应该出现在移动版本中。在后者中,它们是在样式表中定义的,因此您可以在移动 css 中简单地避免它们。
我能想到的唯一例外是当您想在移动设备上提供不同的功能时,或者如果您被迫提供,即在严重依赖 JS 的页面上并且这些脚本无法在移动浏览器上运行。在这种情况下,您可能希望创建这些页面的不同版本并根据用户代理提供适当的版本。
检查NerdDrinner的源代码。他们实现了一个继承自基础 WebFormViewEngine 类的 MobileCapableWebFormViewEngine 类。MobileCapableWebFormViewEngine 使用 HTTPContext 来决定在客户端中呈现哪个视图。当您看到源代码时,这会更有意义