Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does MVC4 detect a mobile browser?

I've just followed Scott Hanselmans tutorial on making a switchable site in MVC4.

I'm using the Opera mobile emulator to test as I don't have VS2102.

When rendering my page in the emulator Request.Browser.IsMobileDevice is false although it still renders the mobile view.

enter image description here

My questions are:

  • Why/How does MVC4 decide to render the mobile view? It doesn't seem like it looks at Request.Browser.IsMobileDevice.
  • Will the View Switcher be displayed on a real mobile device?

Edit:

I think I realised my mistake:

To get it to work with the opera emulator I added a MobileDisplayMode as described here: ASP.NET MVC 4 Mobile Features

It seems that that solution works with rendering correctly but Request.Browser.IsMobileDevice won't work. The same goes for ViewContext.HttpContext.GetOverriddenBrowser().IsMobileDevice is there a way to get around this?

like image 744
woggles Avatar asked Oct 03 '12 13:10

woggles


People also ask

What is mvc4?

ASP.NET MVC 4 is a framework for building scalable, standards-based web applications using well-established design patterns and the power of the ASP.NET and the . NET framework. This new, fourth version of the framework focuses on making mobile web application development easier.

How do I open MVC project in browser?

To do this, right click on your mvc project, choose Properties , then select the Web tab and then in the right pane, select Specific Page and enter the url say " Home/Index ".


1 Answers

MVC recognize Mobile device by matching the HTTP request header with browser config files present in C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Browsers

The asp.net MVC browser detection approach is not great so i recommend using some sort of DDR

like image 130
Ajay Beniwal Avatar answered Oct 21 '22 19:10

Ajay Beniwal