Question

Je travaille sur un projet qui doit extraire l'URL réelle et l'utiliser dans la route elle-même. Tout ce que je vois, lis et teste permet à la route de récupérer les éléments après l'URL du site. C’est ce que j’ai essayé et chaque fois, il est simplement indiqué que le site est vide (ce qui est probablement dû au défaut de suppression). Pouvez-vous me laisser un os en permettant à la route d'utiliser également l'URL racine? L’objectif est un site Web qui traitera l’URL et me dirigera vers différents tripes une fois dans la vue.

Voici le code que j'ai essayé mais pas de chance en dehors de localhost

            routes.MapRoute(
            "PageRouter",
            "{site}/{*url}",
            new { controller = "PageRouter", action = "RoutePage", site = "", url = "" }
        );

Votre aide est grandement appréciée. Merci d'avance

Était-ce utile?

La solution

Pourquoi ne pas utiliser simplement HttpContext.Request.RawUrl dans l’action du contrôleur. Il se peut que je manque quelque chose ici. D'où vient l'url que vous voulez lire? Est-ce la page en cours ou une autre page?

Autres conseils

La réponse de Nathan fait partie de la réponse. HttpContext.Request.RawUrl permet d'accéder à ces informations mais au fichier Global.asax.cs à la place. Cela se fait dans l'événement Application_BeginRequest. Mais l'astuce (et commentez si quelqu'un connaît un moyen plus élégant de le faire), mais nous injectons l'URL utilisée dans le chemin de la route restante afin qu'elle puisse être récupérée dans la méthode MapRoute. Ainsi, le " http://subdomain.domain.net/url " le site s'afficherait alors sous la forme " http://subdomain.domain.net/subdomain.domain .net / url pour pouvoir le récupérer dans la partie {site} de la commande MapRoute. Cela ne serait pas montré à l'utilisateur, mais nous permettrait ensuite de prendre des décisions à l'intérieur de l'application en fonction de l'URL reçue. Cela semble-t-il sain? Les commentaires sont les bienvenus si cela semble une façon folle de le faire afin d’absorber l’URL racine.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top