web-dev-qa-db-fra.com

Désactiver la redirection mobile d'aspnet.friendlyurl pour les tablettes

Mon site Web est réactif avec Twitter Bootstrap et les pages de bureau sont conçues pour les tablettes et les ordinateurs de bureau. aspnet.friendlyUrls considère les tablettes comme mobiles et les envoie à l’équivalent ".Mobile.aspx". Comment désactiver ce comportement et conserver les tablettes sur les pages du bureau?

2 semaines plus tard et toujours pas de réponse ou même un commentaire? Suis-je le seul à utiliser réellement aspnet.FriendlyUrls même s'il est distribué par défaut dans les nouveaux projets Asp.Net VS2013?

17
Jeroen

Aucun paramètre ne permet de désactiver cette option, mais vous pouvez le faire en supprimant les fichiers Site.Mobile.Master et ViewSwitcher.

Les fichiers suivants ne sont plus nécessaires:

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

ViewSwitcher
- ViewSwitcher.cs
- ViewSwitcher.ascx.cs

Merci à @fortboise pour avoir simplifié ma réponse

32
Thom

Supprimer le ne résoudra pas le problème, le moyen est de remplacer le TrySetMobileMasterPage.

première étape: créer un cours

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);
    }
}

}

Après aller dans App_Start/RouteConfig et définissez:

public static void RegisterRoutes(RouteCollection routes)
    {
        var settings = new FriendlyUrlSettings();
        settings.AutoRedirectMode = RedirectMode.Permanent;
        routes.EnableFriendlyUrls(settings, new MyWebFormsFriendlyUrlResolver());
    } 
0
Claudinei Ferreira