Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disable aspnet.friendlyurl's mobile redirect for tablets

My Website is responsive with Twitter Bootstrap and the desktop pages are designed for tablets and desktop. aspnet.friendlyUrls considers tablet devices as mobile and sends them to the ".Mobile.aspx" equivalent. How can I disable this behavior and keep tablets on the desktop pages?

2 Weeks later and still no awnser or even a comment? Am i the only one who actually uses aspnet.FriendlyUrls even if it's distributed in new VS2013 Asp.Net projects by default?

like image 530
Jeroen Avatar asked Apr 15 '14 10:04

Jeroen


2 Answers

There is no setting to turn this off, but you can disable this by deleting the Site.Mobile.Master and ViewSwitcher files

The following files are no longer needed:

Site.Mobile.Master
- Site.Mobile.Master.cs
- Site.Mobile.Master.designer.cs

ViewSwitcher
- ViewSwitcher.cs
- ViewSwitcher.ascx.cs

Thanks to @fortboise for simplifying my answer

like image 186
Thom Avatar answered Sep 27 '22 21:09

Thom


Remove the won't solve the problem, the way is override the TrySetMobileMasterPage.

step one: Create a Class

public class MyWebFormsFriendlyUrlResolver : Microsoft.AspNet.FriendlyUrls.Resolvers.WebFormsFriendlyUrlResolver
{
protected override bool TrySetMobileMasterPage(HttpContextBase httpContext, Page page, String mobileSuffix)
{
    if (mobileSuffix == "Mobile")
    {
        return false;
    }
    else
    {
        return base.TrySetMobileMasterPage(httpContext, page, mobileSuffix);
    }
}

}

After go in App_Start/RouteConfig and set:

public static void RegisterRoutes(RouteCollection routes)
    {
        var settings = new FriendlyUrlSettings();
        settings.AutoRedirectMode = RedirectMode.Permanent;
        routes.EnableFriendlyUrls(settings, new MyWebFormsFriendlyUrlResolver());
    } 
like image 44
Claudinei Ferreira Avatar answered Sep 27 '22 22:09

Claudinei Ferreira