For a good review on cross platform/device mobile development/compatibility using MVC4 technology, take a look at Phil Haack's session at //build/, Progressively enable the mobile web with ASP.NET MVC 4, HTML5, and jQuery Mobile.
This is a very informative session on new MVC4 changes are making mobile development easier leveraging new jQuery Mobile and HTML5 technologies.
First and foremost is the use of the viewport tag which is the first step in giving your app that mobile look and feel. Also take a look at Adap
You can also target specific display modes which include a general/overall mobile view, or display modes targeting Android, iPhone, etc. by adding brief custom display mode code to your Global.asax.cs to target those UI's.
Global.asax.cs ie. ...useragent.Contains(“iPhone”)
Now create views with the iPhone mode: Index.iPhone.cshtml.
Also really look at what the new jQuery Mobile features are - theming, etc. and data view structures that are really nice. Once installed into your IDE, it includes a partial _ViewSwitcher, that allows clients to switch from the generated mobile view to the desktop view - really nice.
He also discusses using the cache manifest and concepts of working in offline mode
There is also a discussion about using the JSON.AllData technique which loads all data required for the app (similar to a Silverlight MVVM approach) that works well for SOA-based apps.
Lastly, there's a free online book available on HTML5.