Obtenir l'itinéraire complet de l'action en cours
J'ai une API simple avec base de routage. C'était le programme d'installation à l'aide de la valeur par défaut de Visual Studio 2015 ASP.NET API de Base du modèle.
J'ai ce contrôleur et l'action:
[Route("api/[controller]")]
public class DocumentController : Controller
{
[HttpGet("info/{Id}")]
public async Task<Data> Get(string Id)
{
//Logic
}
}
Afin d'atteindre cette méthode, je dois appeler GET /api/document/info/some-id-here
.
Est-il possible avec .NET de Base, à l'intérieur de cette méthode, afin de récupérer une chaîne de caractères le parcours complet?
Donc j'ai pu le faire par exemple:
var myRoute = retrieveRoute();
//myRoute = "/api/document/info/some-id-here"
essayez [HttpGet("info/{Id?}")]
Je n'! merci pour votre commentaire, mais la question est à propos de la récupération comme une chaîne de caractères, dans la méthode, la voie suivie pour parvenir à la méthode. Mon routage fonctionne bien pour le moment et je ne peux pas définir l'Identifiant comme facultatif.
Ok, la Question a été édité.
Je n'! merci pour votre commentaire, mais la question est à propos de la récupération comme une chaîne de caractères, dans la méthode, la voie suivie pour parvenir à la méthode. Mon routage fonctionne bien pour le moment et je ne peux pas définir l'Identifiant comme facultatif.
Ok, la Question a été édité.
OriginalL'auteur BlackHoleGalaxy | 2017-01-06
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vous procurer l'intégralité de l'url demandée à l'aide de la Demande option (HttpRequest).Net De Base.
Votre code final.
Résultat de la route: "/api/document/info/un-id-ici" //par exemple
ce qui est grand, lorsque votre code est à l'intérieur de l'action. Que faire si vous avez besoin d'un chemin d'accès à une action, par exemple, en vue?
OriginalL'auteur Balaji Marimuthu
Vous pouvez également demander MVC pour créer un nouvel itinéraire URL basée sur l'itinéraire actuel des valeurs:
Url.RouteUrl
est une méthode d'assistance qui vous permet de construire un itinéraire URL donné aucune route des valeurs.RouteData.Values
vous donne l'itinéraire des valeurs pour les actuel demande.Qu'entendez-vous par "filtre"?
Dans mon exemple récupérer uniquement la partie après /api/ de mon itinéraire:
/document/info/Id
Vous pouvez toujours faire
myRoute.Replace("/api", string.Empty)
rapide hack.Tellement évidente que j'ai raté... j'ai essayé de faire une boucle par
RouteData.Values
...OriginalL'auteur Nate Barbettini