2017-02-07 1 views
0

Est-il possible d'avoir une route dans le noyau asp.net qui retourne le chemin complet de l'URL comme une variable pour mon IActionResult.asp.net core routing - obtenir des paramètres d'URL qui incluent des slashes

Par exemple:

  1. Avec https://example.com/services, le chemin variable doit être égale aux "services"
  2. Avec https://example.com/services/cleaning, le chemin variable doit être égal à "services/nettoyage"
  3. Avec https://example.com/services/painting, le chemin variable doit égal à "services/peinture"
  4. Avec https://example.com/services/painting/interior, la variable chemin doit être égal à "services/peinture/intérieur"

je ne la route suivante dans mon Startup.cs

app.UseMvc(routes => 
{ 
    routes.MapRoute(
     "Redirect", 
     "{*path}", 
     new { controller = "Home", action = "Index", path = string.Empty } 
    ); 
}); 

Cela fonctionne par exemple 1, mais est ignoré des exemples 2, 3 et 4.

Comment puis-je obtenir la route de travail, quel que soit le nombre de sla shes?


MISE À JOUR: Ma question était que j'avais décoré mon contrôleur avec une définition d'itinéraire. J'ai enlevé ça et tout fonctionne bien.

+0

Si vous recherchez le chemin de la requête, c'est probablement dans ['HttpContext.Request'] (https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http/ DefaultHttpContext.cs # L108) objet. Il existe une propriété ['.Path'] (https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http.Abstractions/HttpRequest.cs#L54) qui semble prometteuse. –

+0

@DavidPine le problème que j'ai est que dans les exemples 2, 3, 4, je reçois une page vierge. Je devine parce qu'il ne trouve pas ce qu'il se sent est un itinéraire valide. –

+0

C'est une supposition correcte –

Répondre

0

Mon problème était que j'avais décoré mon contrôleur avec une définition d'itinéraire. J'ai enlevé ça et tout fonctionne bien.